当计算机内存不足时会发生什么情况?

当计算机内存不足时会发生什么情况?

不久前,出于好奇,我编写了一个 Java 程序,它很快就占用了大量内存。(它循环将 BufferedImages 添加到数组列表中。)

我保持 Windows 系统监视器打开,以观察运行时的 RAM 使用情况。

当我启动该程序时,RAM 使用率上升得非常快,当它达到 6GB RAM 的 100% 左右时,我的电脑变得非常慢。大约一分钟后,我设法终止了该程序,我的电脑慢慢恢复了速度。引起我注意的是,内存使用率首先缓慢下降,然后突然下降到几乎 0MB,然后又回升到大约 2-2.5GB 的空闲使用率。

我截取了系统监视器中 RAM 使用情况的屏幕截图:

在此处输入图片描述

我想知道是否有人可以解释一下当计算机内存耗尽时会发生什么,以及为什么它不在程序结束后立即恢复空闲状态,而是在大约 60 秒后恢复空闲状态?此外,为什么使用量会一直下降到零,而不是只是空闲使用量?

答案1

当你开始达到主内存的限制时,你的操作系统将开始将内存交换到磁盘,以便为更多的东西腾出空间(这称为分页)这就是为什么你的电脑变得很慢,因为磁盘驱动器哇哇哇比 RAM 慢,即使你使用的是 SSD,这也是你的程序可以在没有任何主内存的情况下继续运行的原因。

空闲内存通常会先被换出,以便活动程序可以在 RAM 中拥有尽可能多的空间。这就是内存使用率低于通常空闲状态的原因。系统将再次开始换入内存页面,空闲内存最终将填满 RAM。

相关内容