Що відбувається, коли на комп'ютері закінчується оперативна пам'ять?


9

Трохи тому з цікавості я написав програму Java, яка дуже швидко займає багато пам'яті. (Він додає BufferedImages до масиву в циклі.)

Я тримав монітор Windows відкритим, щоб спостерігати за використанням оперативної пам'яті під час роботи.

Коли я запустив програму, використання оперативної пам’яті зросло дуже швидко, і коли вона досягла приблизно 100% моїх 6 Гб оперативної пам’яті, мій комп'ютер став надзвичайно повільним. Приблизно за одну хвилину мені вдалося припинити програму, і мій комп'ютер повільно відновив швидкість. Що привернуло мою увагу, що споживання пам’яті спочатку повільно знижувалося, а потім раптово знизилося майже до 0 Мб, перш ніж піднятися на режим очікування на рівні 2-2,5 ГБ.

Я зробив знімок екрана використання оперативної пам'яті в системному моніторі:

введіть тут опис зображення

Мені було цікаво, чи може хтось пояснити, що відбувається, коли у комп'ютера не вистачає пам’яті і чому він не повертається до простою відразу після закінчення програми, а приблизно через 60 секунд? Крім того, чому використання йде зовсім ні до чого, а не простою програмою?



Це не 0МБ (або навіть близько до нього). Якщо припустити, що ви зробили знімок екрана на весь графік, то найнижча точка - 814 Мб ; навіть більше, якщо ви його обрізали.
Synetech

Відповіді:


15

Коли ви почнете досягти ліміту основної пам'яті, ваша операційна система почне замінювати пам'ять на диск, щоб звільнити місце для додаткових матеріалів (це називається пейджингом ). Ось чому ваш комп'ютер стає дуже повільно , тому що диск є Waaaay повільніше , ніж RAM, навіть якщо ви на SSD, і це також причина , ваша програма може тривати без основної пам'яті залишилася.

Пам'ять у режимі очікування часто замінюється спочатку, щоб активні програми могли мати якомога більше оперативної пам'яті. З цієї причини використання пам'яті опускається нижче звичайного режиму очікування. Система знову почне обмінюватися сторінками пам’яті, а простою пам’ять з часом заповнить оперативну пам’ять.

Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.