![当另一个程序用尽所有内存后,打开的程序需要很长时间才能重新加载](https://linux22.com/image/1422704/%E5%BD%93%E5%8F%A6%E4%B8%80%E4%B8%AA%E7%A8%8B%E5%BA%8F%E7%94%A8%E5%B0%BD%E6%89%80%E6%9C%89%E5%86%85%E5%AD%98%E5%90%8E%EF%BC%8C%E6%89%93%E5%BC%80%E7%9A%84%E7%A8%8B%E5%BA%8F%E9%9C%80%E8%A6%81%E5%BE%88%E9%95%BF%E6%97%B6%E9%97%B4%E6%89%8D%E8%83%BD%E9%87%8D%E6%96%B0%E5%8A%A0%E8%BD%BD.png)
我有以下现象:我有 4GB RAM,有时我使用一个程序(程序 A)占用了所有可用内存,比如 3.9GB。如果打开了更多程序,那么它们的内存可能已保存到磁盘,在任务管理器上我看到它们现在几乎不占用内存。一旦我关闭程序 A,内存就会立即释放(我在任务管理器上看到它),我希望其余程序能够快速加载回内存。但不幸的是,它们需要几分钟(最多 5-10 分钟)才能正确加载。
例如:我在 Firefox 最小化到后台时打开程序 A。由于 Firefox 通常使用大约 500MB,而 A 占用了我所有的内存,因此 Firefox 现在占用了大约 10-20MB,我显然无法打开它(从技术上讲我可以,但恢复它需要很长时间)。现在我关闭程序 A,看到 Firefox 慢慢加载回内存,直到达到 400-450MB 时,它仍然“卡住”。
是什么原因导致内存加载如此缓慢?是内存速度的问题吗?也许是硬盘速度的问题?也许我可以通过操作系统偏好设置来控制它(我使用 win7)?
谢谢。
答案1
未使用的应用程序的内存已被分页输出,这意味着它已被写入磁盘并从 RAM 中删除。即使您释放 RAM,应用程序的内存仍然在磁盘上,而不是在 RAM 中。从非常慢的磁盘读取 500 MB 可能需要一段时间。如果防病毒软件设法搞乱了一切,则需要更长的时间。这会快得多如果页面文件/交换文件位于快速 SSD 上.这个过程也可以潜在加速创建更大的页面文件, 到减少碎片化一些应用程序还会进行自己的内存管理,并在内存紧张时尝试减少其占用空间,这可能会或可能不会增加或减少问题的规模(即,它们试图提供帮助,但在这样做时可能会搞砸)。
内存速度无关紧要,因为最慢的 RAM 也比最快的硬盘快几个数量级(假设是现实世界的消费类计算机)。