2011-05-06 59 views
11

运行在64位操作系统上的32位程序是否能够使用超过4GB的内存?32位程序可以在64位操作系统上使用多于​​4GB的内存吗?

+0

这也取决于机器/处理器和操作系统。 – 2011-05-06 21:06:26

+0

[应用程序无法在64位处理器上访问超过4 GB的可能副本](http://superuser.com/questions/69480/application-cannot-access-more-than-4-gb-on-64-bit-处理器) – 2011-05-06 21:11:38

+0

此链接可能是有用的: http://stackoverflow.com/questions/5916959/can-a-32-bit-program-use-more-than-4gb-of-memory-on-a-64-位操作系统 – Hasan 2017-05-18 12:31:17

回答

0

只有将4GB范围的内存明确映射到其地址空间中。

2

简短的回答是:是的。 较长的答案取决于。有一个硬件支持页面重新映射,它基本上为您的程序提供了一个将几页的窗口放入更大的内存区域。 然而,这个窗口应该由程序本身管理,并且不会从内存管理器获得支持。有些程序可以在Windows上像SQL一样执行。 但是,一般来说这是一个坏主意,程序应该限制自己的4GB或移动到64位:)

1

通常你只限于2GB的地址空间,其中你所有的分配及其开销,碎片等,必须与内存映射文件(包括您的程序和它使用的DLL)一起使用。这有效地限制你1.5GB。

对于特殊的配置,例如, /3GB,你可以使2GB以上的应用程序可用,但这样做会抢劫空间的内核,导致文件缓存,处理容量等。

在Win32上,你可以使用更多的PAE support,但它是不透明,你必须自己管理它。

相关问题