我正在阅读 Google 的 TCMalloc 源代码(Windows 移植)。
int getpagesize()
{
static int pagesize = 0;
if (pagesize == 0)
{
SYSTEM_INFO system_info;
GetSystemInfo(&system_info);
pagesize = std::max(system_info.dwPageSize, system_info.dwAllocationGranularity);
}
return pagesize;
}
正如您在上面的代码片段中pagesize
看到的那样(即分配单位)被计算为 dwPageSize 和 dwAllocationGranularity 之间的最大值。我的意思是要知道这两个值之间的关系:是否有必要按照这里向上解释的方式计算值?是否存在 dwPageSize 可能大于 dwAllocationGranularity 的情况?