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


9

前不久,出于好奇,我编写了一个Java程序,该程序非常快地占用了大量内存。(它将BufferedImages循环添加到arraylist中。)

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

当我启动该程序时,RAM的使用量迅速增加,并且达到6GB RAM的100%左右时,我的计算机变得非常慢。大约一分钟后,我设法终止了该程序,计算机缓慢恢复了速度。引起我注意的是,内存使用率先缓慢下降,然后突然下降到将近0MB,然后又恢复到大约2-2.5GB的空闲使用率。

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

在此处输入图片说明

我想知道是否有人能解释一下计算机内存不足时会发生什么,为什么在程序结束后大约60秒后它没有回到空闲状态?另外,为什么使用率一直下降到零,而不仅仅是闲置使用率?



不是 0MB(甚至不是 0MB)。假设您对整个图表进行了截图,则最低点为814MB;如果剪裁得更多。
Synetech 2012年

Answers:


15

当您开始达到主内存的限制时,操作系统将开始将内存换出到磁盘,以腾出空间来容纳更多的东西(这称为分页)。这就是为什么你的计算机越来越慢真的因为磁盘驱动器是waaaay慢于RAM,即使你是一个SSD,并且它也是你的程序可以去没有留下任何主内存的原因。

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

By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.