c - 虚拟分配粒度和页面大小

标签 c windows winapi win64

在 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/

相关文章:

c - 编辑用户输入而不是内部输入的脚本

windows - Windows 上的 Node JS 0.6.1 msi

c++ - 如何将标准输出重定向到 Windows 应用程序中的某个可见显示?

c++ - 如何使用 FillRect() 绘制子窗口?

c++ - 使用 WinHTTP API 限制带宽使用的方法

C语言中计算文本中字母和单词的数量

c - 为什么 typedef 在 nginx 中被如此广泛地使用?

windows - Windows 上的 Docker - 端口已锁定

c++ - 更改 LOCALE_USER_DEFAULT 的 LOCALE_SISO639LANGNAME

我可以在桌面上使用 OpenGL GLES 而不是完整的 OpenGL 吗?