我知道在32位Windows上运行的32位进程的默认页面大小是4K,而在64位Windows上运行的64位进程的默认页面大小是8K。但是,在64位Windows(即WOW64)上运行的32位进程的实际页面大小是多少? 4K? 8K?
答案 0 :(得分:7)
理想情况下,您应致电GetSystemInfo()
并检查SYSTEM_INFO.dwPageSize
。
顺便说一句,我怀疑你在64位Windows中有8KB的页面。 x86 / 64 CPU支持以下大小的页面:4KB(所有模式),4MB(32位非PAE),2MB(32/64位PAE),1GB(64位,始终PAE)。您可以在Intel(或AMD)的CPU手册中找到它。
答案 1 :(得分:5)
页面大小仍为4K - 1M页,4GB最大可寻址RAM内存
虚拟内存大小。在英特尔安腾处理器上,WOW64补充道 如果两个或多个相同32位的实例,则会产生很大的开销 应用程序正在并发运行。这是由于原生的8 KB 英特尔安腾上的页面,这使得仿真变得复杂 x86架构上的原生4 KB页面(更多页面标记为 可写;所有可写页面都是该过程的私有页面)。这个可以 对某些终端服务的可扩展性产生不利影响 处理器。对于x64处理器,情况并非如此。
详细了解WOW64 here
答案 2 :(得分:2)
这个问题的正确答案是“这取决于哪个处理器”。
Itanium使用8KB页面。
X86-32和x86-64适当使用4KB,2MB和1GB页面[请注意,对于2MB和1GB页面,内存需要是2MB / 1GB的倍数,并且对齐为2MB / 1GB分别]。
其他处理器,例如ARM(目前只有32位操作系统),通常使用4KB页面,但也可以使用64KB页面。
如果你能找到一个旧的DEC Alpha处理器和要匹配的操作系统,那么它也会使用8KB的页面。