在64位操作系统上运行的32位程序是否可以使用超过4GB的内存?
答案 0 :(得分:2)
简短回答是:是的。 更长的答案取决于。页面重新映射有一个硬件支持,它基本上为你的程序提供了一个窗口,可以将一些页面放入更大的内存区域。 但是,此窗口应由程序本身管理,不会得到内存管理器的支持。有一些程序可以像Windows上的SQL一样运行。 但是,一般来说这是一个坏主意,程序应该限制为4GB或移动到64位:)
答案 1 :(得分:1)
通常,您只能使用2GB的地址空间,其中所有分配及其开销,碎片等必须与内存映射文件(包括您的程序及其使用的DLL)一致。这实际上限制你为1.5GB。
使用特殊配置,例如/3GB,您可以为应用程序提供超过2GB的空间,但这样做会占用内核空间,花费您的文件缓存,处理容量等。
在Win32上,您可以使用PAE support更多,但它不透明,您必须自己管理它。
答案 2 :(得分:0)
仅通过将4GB内存范围显式映射到其地址空间。