在 Win64 平台上,虚拟分配粒度和页面大小的典型值是多少?那就是 SYSTEM_INFO 的 dwAllocationGranularity 和 dwPageSize。
在 Win32 系统上,这些将是 64k 和 4k。
我需要知道,因为我已经为 Win32 应用程序设计了一个基于 VirtualAlloc 的自定义分配器,并且想知道我的设计选择在 Win64 上是否仍然有效。我无法访问 Win64 系统。
提前致谢!
最佳答案
在 Vista x64 上还是一样,64k 和 4k。不太确定这是否会在某一天发生变化,小页面大小给 TLB 缓存带来了严重压力,大大降低了分配数 GB block 的程序的性能。我还看到了一些关于在程序执行期间无法在某些难以理解的点上再分配大页面的问题报告。但这只是现在的 Crystal 球。
关于c - 虚拟分配粒度和页面大小,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/438863/