Beberapa waktu yang lalu, karena penasaran, saya menulis sebuah program Java yang menghabiskan banyak memori dengan sangat cepat. (Ini menambahkan BufferedImages ke daftar array dalam satu lingkaran.)
Saya membiarkan Monitor Sistem Windows tetap terbuka untuk mengamati penggunaan RAM saat dijalankan.
Ketika saya memulai program, penggunaan RAM meningkat sangat cepat, dan ketika mencapai sekitar 100% dari 6GB RAM saya, komputer saya menjadi sangat lambat. Setelah sekitar satu menit, saya berhasil menghentikan program dan komputer saya perlahan pulih. Yang menarik perhatian saya adalah bahwa penggunaan memori pertama-tama menurun perlahan, kemudian tiba-tiba turun hingga hampir 0MB sebelum naik kembali ke penggunaan siaga sekitar 2-2,5GB.
Saya mengambil tangkapan layar dari penggunaan RAM di Monitor Sistem:
Saya bertanya-tanya apakah ada yang bisa menjelaskan apa yang terjadi ketika komputer kehabisan memori dan mengapa komputer tidak kembali menganggur setelah program berakhir tetapi sekitar 60 detik kemudian? Juga, mengapa penggunaannya tidak berarti apa-apa alih-alih hanya penggunaan menganggur?
sumber
Jawaban:
Ketika Anda mulai mencapai batas memori utama, sistem operasi Anda akan mulai menukar memori ke disk untuk memberikan ruang bagi lebih banyak barang (ini disebut paging ). Inilah sebabnya mengapa komputer Anda mendapatkan benar-benar lambat karena disk drive adalah waaaay lebih lambat dari RAM, bahkan jika Anda berada di SSD, dan itu juga alasan program anda bisa pergi tanpa memori utama kiri.
Memori siaga sering kali diganti terlebih dahulu sehingga program yang aktif dapat memiliki sebanyak mungkin dalam RAM. Ini adalah alasan penggunaan memori turun di bawah kondisi siaga yang biasa. Sistem akan mulai bertukar di halaman memori lagi dan memori idle pada akhirnya akan terisi.
sumber