该类v8::ResourceConstraints
定义如下:
class V8EXPORT ResourceConstraints {
public:
ResourceConstraints();
int max_young_space_size() const { return max_young_space_size_; }
void set_max_young_space_size(int value) { max_young_space_size_ = value; }
int max_old_space_size() const { return max_old_space_size_; }
void set_max_old_space_size(int value) { max_old_space_size_ = value; }
int max_executable_size() { return max_executable_size_; }
void set_max_executable_size(int value) { max_executable_size_ = value; }
uint32_t* stack_limit() const { return stack_limit_; }
// Sets an address beyond which the VM's stack may not grow.
void set_stack_limit(uint32_t* value) { stack_limit_ = value; }
private:
int max_young_space_size_;
int max_old_space_size_;
int max_executable_size_;
uint32_t* stack_limit_;
};
谁能告诉我young_space_size
,old_space_size
和max_executable_size
是什么?它们的单位是什么,它们是如何相关的,等等?似乎没有太多文档。
另外,如何使用该stack_limit
物业?例如,如果我希望我的 V8 隔离使用不超过 1MB 的堆栈空间,我将如何计算指针值stack_limit
?