在WOW64上运行的32位进程的实际页面大小是多少?

xml*_*lmx 4 c windows winapi memory-management virtual-memory

我知道在32位Windows上运行的32位进程的默认页面大小是4K,而在64位Windows上运行的64位进程的默认页面大小是8K.但是,在64位Windows(即WOW64)上运行的32位进程的实际页面大小是多少?4K?8K?

Ale*_*nze 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手册中找到它.


Ani*_*nge 5

页面大小仍为4K - 1M页,最大可寻址RAM内存为4GB

虚拟内存大小.在Intel Itanium处理器上,如果同时运行同一个32位应用程序的两个或多个实例,WOW64会增加大量开销.这是由于Intel Itanium上的原生8 KB页面,这使得x86架构上的本机4 KB页面的仿真复杂化(更多页面被标记为可写;所有可写页面都是该进程专用的).这可能会对某些处理器上的终端服务的可伸缩性产生负面影响.对于x64处理器,情况并非如此.

在这里阅读更多关于WOW64的信息

  • 不,它没有.x64是从x86重新开发的.它与Itanium没有任何共同之处.Itanium是第一款由英特尔开发的,是x86的彻底改变.Itanium未在标记的服务器之外使用.然后由AMD开发x64作为竞争解决方案,并且非常成功,它也被英特尔使用.参见[Itanium Wikipedia](http://en.wikipedia.org/wiki/Itanium#Other_markets)"AMD选择了一个不同的方向,设计不那么激进的x86-64,对现有x86架构的64位扩展" (4认同)
  • 这是关于Itanium,它是现有的架构,但不是x64,这是人们在谈论64b Windows时通常的意思. (2认同)