虚拟分配粒度和页面大小

时间:2009-01-13 13:03:02

标签: c windows winapi win64

Win64平台上的虚拟分配粒度和页面大小的典型值是什么?这是SYSTEM_INFO的dwAllocationGranularity和dwPageSize。

在Win32系统上,这些将是64k和4k。

我需要知道,因为我为Win32应用程序设计了一个基于VirtualAlloc的自定义分配器,并想知道我的设计选择在Win64上是否仍然有效。我无法访问Win64系统。

提前致谢!

1 个答案:

答案 0 :(得分:7)

在Vista x64上它仍然是相同的,64k和4k。不确定是否有一天不会改变,小页面大小会对TLB缓存造成严重压力,对于分配数千兆字节块的程序而言,会大大降低性能。我还看到了几个问题报告,说明在程序执行期间不能再在一些不可思议的点上分配大页面了。但那只是现在的水晶球。