为什么当我似乎提供了 2GB 以上的可用内存时,Windows 7 会说我的内存不足?

为什么当我似乎提供了 2GB 以上的可用内存时,Windows 7 会说我的内存不足?

为什么当我似乎提供了 2GB-3GB 的可用 RAM 时,Windows 7 会说内存不足?(在 12GB 的机器上)

2.2GB+ 肯定是相当多的可用 RAM,它不应该在这个阶段警告我吗?

另外“免费”和“可用”之间有什么区别?

在此处输入图片描述

答案1

该消息有点误导。尽管系统有足够的可用物理内存,但备份虚拟内存不足。解决方案是扩大分页文件。系统不一定会使用分页文件——它只是需要它来确保能够履行承诺。

这有点像即使你的银行账户里有很多钱,你也无法开支票。你需要足够的钱来应对你开的所有支票被同时兑现的情况,即使这种情况不太可能发生。参见这里更多细节。

下面是一个简单但不太可能的例子,它说明了这个问题:假设一个进程对一个 3GB 的文件进行私有的可写映射。它可能永远不会修改该映射的任何一个字节。但是,系统必须保留 3GB 的备用虚拟内存,以防该进程修改该文件的每个字节——它必须将更改存储在某个地方。该映射在使用前不需要任何物理内存字节。因此,这将使系统留下一个映射,该映射需要保留 3GB 的 RAM+分页,但目前不需要使用任何 RAM。

“空闲”RAM 是指尽管操作系统尽了最大努力,但仍无法找到任何使用方法的 RAM。它还包括故意留作紧急情况的空闲 RAM,例如在无法重新利用内存的环境中(例如来自中断环境)需要内存时。

“可用” RAM 是指正在使用但操作系统在需要时可以轻松释放的 RAM,也就是说,这些页面中的信息可以安全地丢弃。大部分此类 RAM 将包含文件数据的缓存副本。

相关内容