32位进程可以在64位Windows操作系统上访问更多内存吗?

根据我的理解,32位进程只能在没有/ 3GB开关的情况下在32位窗口上访问2GB内存,并且操作系统会根据自己的恶魔原因占用部分内存.这似乎与我的经验相吻合,因为我们有一个应用程序崩溃,当它达到大约1.2-1.5 GB的内存异常,即使仍然有足够的可用内存.

我的问题是,将这个32位应用程序移动到64位窗口是否允许它现在可以访问超过1.5GB左右的内存?或者应用程序本身是否必须升级到64位?

较新版本的Visual Studio有一个新标志,使32位应用程序“具有大地址空间感知”.基本上它的作用是说如果它加载到64位版本的Windows上,那么它将获得4GB(32位指针的限制).这肯定比你在32位版本的Windows上获得的2或3 GB更好.见 http://msdn.microsoft.com/en-us/library/aa366778.aspx

最值得注意的是它说:

Limits on memory and address space
vary by platform,operating system,
and by whether the
IMAGE_FILE_LARGE_ADDRESS_AWARE value
of the LOADED_IMAGE structure and
4-gigabyte tuning (4GT) are in use.
IMAGE_FILE_LARGE_ADDRESS_AWARE is set
or cleared by using the
/LARGEADDRESSAWARE linker option.

另见:http://msdn.microsoft.com/en-us/library/wz223b1z.aspx

相关文章

文章浏览阅读2.2k次,点赞6次,收藏20次。在我们平时办公工作...
文章浏览阅读1k次。解决 Windows make command not found 和...
文章浏览阅读3.2k次,点赞2次,收藏6次。2、鼠标依次点击“计...
文章浏览阅读1.3w次。蓝光版属于高清版的一种。BD英文全名是...
文章浏览阅读974次,点赞7次,收藏8次。提供了更强大的功能,...
文章浏览阅读1.4w次,点赞5次,收藏22次。如果使用iterator的...