在窗户,在正常情况下的一个32位进程只能访问2GB RAM(或3GB有一个特殊的开关在引导。ini file)。时运行的一个32位的过程中在64位的操作系统,有多少存储器可用?是否有任何特殊的开关或设置,可以改变这个吗?

有帮助吗?

解决方案

2GB默认。如果应用大地址空间的认识(与/LARGEADDRESSAWARE),它获得4GB(未3GB,看看 http://msdn.microsoft.com/en-us/library/aa366778.aspx)

他们仍然局限于2GB因为许多应用程序依赖于顶点的指针为零。

其他提示

4 GB减去的是由系统使用,如果你使用/ LARGEADDRESSAWARE链接。

当然,你更应该小心指针运算如果设置该标志。

似乎没有人基于这样的事实,如果你有许多不同的32位应用程序,WOW64子系统可以在任何地方在存储器4G以上映射它们,等等具有足够存储器的64位的Windows触摸,则可以运行更多的32位的应用超过一个32位本地系统上。

一个32位进程仍限于相同的约束在64位操作系统。问题是,存储器指针是只有32位宽,所以程序不能分配/解决任何存储器地址大于32个比特。

一个32位进程下一64位的操作系统仅限于2Gb。但如果是编制一个文件与IMAGE_FILE_LARGE_ADDRESS_AWARE位置,然后有限的4GB,不2Gb-看看 https://msdn.microsoft.com/en-us/library/aa366778(VS。85).aspx

在任何一种情况下,该核心的虚拟地址空间是共享的所有进程。这就是为什么甚至如果你有一个非常大的数量的32位的进程,他们可以运行的存在的事实,尽管你有很多的存储器可用于64位的操作系统,比如说,16GB-32位的进程在总可以快速运行的内核的地址的虚拟空间,供他们(最多2GB).

你听到的东西有关特殊的启动标志,3GB/3GB开关,或足以为所有大约32位的操作系统并不适用于64位的窗口。

看看 https://msdn.microsoft.com/en-us/library/aa366778(v=与85).aspx 更多的细节。

约32位的操作系统、违反信仰,没有身体限制的4G的32位的操作系统。例如,32位的服务器操作系统,如Microsoft的Windows服务器2008年的32位可以接入了 64GB (Windows服务器的2008年企业数据中心版本)–通过物理地址扩展(PAE),这是首次推出了由英特尔在奔腾亲,后来通过AMD在的速处理它规定了一页的表层结构的三个层次,与表项目64位每而不是32,允许这些Cpu直接访问的一个地址的物理空间大于4千兆字节–所以,从理论上说,一个32位的操作系统可以访问2^64字节理论上,或17,179,869,184千兆字节, 但是,该段是有限的 4GB.然而,由于市场营销的原因,Microsoft具有有限的最大可存取存储器在非服务器操作系统,只是4G,或者,甚至3GB有效。因此,一个单一的进程可以使用超过4GB上的一个32位的操作系统和Microsoft SQL服务器是一个例子。

您已经运行Win64平台下的32位进程时,得到了相同的基本限制。您的应用程序在32,但其子系统会尽力像Win32的运行,这将包括为你的进程的内存限制(低2GB的你,上2GB的OS)

限制功能不2G或3GB其为32位4GB。

之所以人们认为它3GB的是,OS显示3GB免费的,当他们真的有系统RAM 4GB。

及其4GB的总RAM。因此,如果有,计数由32位操作系统观察的总压头的一部分的1 GB视频卡。

4Gig不是3而不是2得到它?

许可以下: CC-BY-SA归因
不隶属于 StackOverflow
scroll top