为什么v8引擎 reserved_semispace_space 64位 是 16M 呢
发布于 9 年前 作者 lik0914 4459 次浏览 最后一次编辑是 8 年前 来自 问答

看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 回复

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

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

谁帮忙解惑一下呢

回到顶部