Некоторое время назад из любопытства я написал программу на Java, которая очень быстро занимает много памяти. (Это добавляет BufferedImages к массиву в цикле.)
Я оставил системный монитор Windows открытым, чтобы наблюдать за использованием оперативной памяти.
Когда я запустил программу, использование оперативной памяти росло очень быстро, и, поскольку оно достигло примерно 100% от 6 ГБ ОЗУ, мой компьютер стал работать крайне медленно. Примерно через одну минуту мне удалось завершить программу, и мой компьютер медленно восстановил скорость. Что привлекло мое внимание, так это то, что использование памяти сначала медленно уменьшалось, а затем внезапно уменьшилось до почти 0 МБ, а затем снова возросло до уровня простоя около 2-2,5 ГБ.
Я сделал скриншот использования оперативной памяти в системном мониторе:
Мне было интересно, может ли кто-нибудь объяснить, что происходит, когда у компьютера заканчивается память и почему он не возвращается в режим ожидания сразу после завершения программы, а примерно через 60 секунд? Кроме того, почему использование сводится к нулю, а не к простому использованию?