CNode

为什么v8引擎 reserved_semispace_space 64位 是 16M 呢

问答
Llik0914发布于11 年前最后回复11 年前3 回复5234 浏览0 收藏

看v8 gc机制, 有个疑问,请教大家

//semispace_size_ should be a power of 2 and old_generation_size_ should be a multiple of Page::kPageSize
#if defined(V8_TARGET_ARCH_X64)
#define LUMP_OF_MEMORY (2 * MB)
code_range_size_(512*MB),
#else
#define LUMP_OF_MEMORY MB
code_range_size_(0),
#endif
#if defined(ANDROID)
reserved_semispace_size_(4 * Max(LUMP_OF_MEMORY, Page::kPageSize)),
max_semispace_size_(4 * Max(LUMP_OF_MEMORY, Page::kPageSize)),
initial_semispace_size_(Page::kPageSize),
max_old_generation_size_(192*MB),
max_executable_size_(max_old_generation_size_),
#else
reserved_semispace_size_(8 * Max(LUMP_OF_MEMORY, Page::kPageSize)),
max_semispace_size_(8 * Max(LUMP_OF_MEMORY, Page::kPageSize)),
initial_semispace_size_(Page::kPageSize),
max_old_generation_size_(700ul * LUMP_OF_MEMORY),
max_executable_size_(256l * LUMP_OF_MEMORY),
#endif

对于新生̼内代它由两个reserved_semispace_size_所构成。按机位数不同, reserved_semispace_size_在64位系统,32位系统上分别为16 MB֖ 8 MB。所以新生代内存的最大值在64位系统和32位系分别为32和16M

查看回复

回复 (3)

L
lik0914#1·11 年前

谁帮忙解惑一下呢

M
MiguelValentine#2·11 年前

̼内ߚ的最大Ϙ在64ͮ系统֖ 32ͮ系统上分Ѿ为32 MB֖ 16 MB 佩服

L
lik0914#3·11 年前
引用 MiguelValentine̼内ߚ的最大Ϙ在64ͮ系统֖ 32ͮ系统上分Ѿ为32 MB֖ 16 MB 佩服

@MiguelValentine 不好意思, 复制了一段,乱码了, 修改了

参与回复
登录后即可参与回复。登录