当前位置:  开发笔记 > 开发工具 > 正文

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

如何解决《在64位操作系统上32位进程可以访问多少内存?》经验,为你挑选了4个好方法。

在Windows上,在正常情况下,32位进程只能访问2GB的RAM(或者带有boot.ini文件中的特殊开关的3GB).在64位操作系统上运行32位进程时,可用内存量是多少?是否有任何特殊的开关或设置可以改变这种情况?



1> Michael..:

默认为2 GB.如果应用程序是大地址空间感知(与/ LARGEADDRESSAWARE链接),它获得4 GB(而不是3 GB,请参阅http://msdn.microsoft.com/en-us/library/aa366778.aspx)

它们仍然限制在2 GB,因为许多应用程序依赖于指针的最高位为零.


有人可以解释为什么进程无法访问完整的4GB?

2> MSN..:

4 GB减去与/ LARGEADDRESSAWARE链接时系统使用的内容.

当然,如果设置该标志,你应该更加小心指针算法.


@ThomasW.,这就是为什么我说"减去系统使用的东西."

3> 小智..:

似乎没有人触及这样一个事实:如果你有许多不同的32位应用程序,wow64子系统可以将它们映射到4G以上的内存中,所以在具有足够内存的64位窗口上,你可以运行更多的32位应用程序而不是原生的32位系统.


你在谈论物理RAM,OP在谈论虚拟内存.即使在32位系统上,只要页面文件足够大,您就可以运行许多应用程序.

4> Ben S..:

32位进程仍限于64位操作系统中的相同约束.问题是内存指针只有32位宽,因此程序无法分配/解析任何大于32位的内存地址.


如果您明确表示32位可以处理4GB空间,那么这将非常有用.
推荐阅读
拾味湖
这个屌丝很懒,什么也没留下!
DevBox开发工具箱 | 专业的在线开发工具网站    京公网安备 11010802040832号  |  京ICP备19059560号-6
Copyright © 1998 - 2020 DevBox.CN. All Rights Reserved devBox.cn 开发工具箱 版权所有