我知道在 32 位 Windows 上运行的 32 位进程的默认页面大小是 4K,而在 64 位 Windows 上运行的 64 位进程的默认页面大小是 8K。但是,在 64 位 Windows(即 WOW64)上运行的 32 位进程的实际页面大小是多少? 4K? 8K?
GetSystemInfo()
并检查 SYSTEM_INFO.dwPageSize
。
顺便说一句,我怀疑你在 64 位 Windows 中是否有 8KB 页面。 x86/64 CPU 支持以下大小的页面:4KB(所有模式)、4MB(32 位非 PAE)、2MB(32/64 位 PAE)、1GB(64 位,始终 PAE)。您可以在 Intel(或 AMD)的 CPU 手册中找到它。
这个问题的正确答案是“这取决于哪个处理器”。
Itanium 使用 8KB 页面。
X86-32和x86-64酌情使用4KB、2MB和1GB页面[注意,要使2MB和1GB页面工作,内存大小需要是2MB/1GB的倍数,并分别与2MB/1GB对齐] 。
其他处理器,例如 ARM(目前仅支持 32 位操作系统),通常使用 4KB 页面,但也可以使用 64KB 页面。
如果您能找到旧的 DEC Alpha 处理器和与之匹配的操作系统,那也将使用 8KB 页面。