Beberapa (paling tidak Mono dan .NET) pemulung memiliki area memori jangka pendek yang sering mereka pindai, dan area memori sekunder yang jarang mereka pindai. Mono menyebut ini kamar anak-anak.
Untuk mengetahui objek yang dapat dibuang, mereka memindai semua objek mulai dari root, tumpukan dan register dan membuang semua objek yang tidak dirujuk lagi.
Pertanyaan saya adalah bagaimana mereka mencegah semua memori terpakai dipindai pada setiap pengambilan? Pada prinsipnya, satu-satunya cara untuk mengetahui objek apa yang tidak digunakan lagi adalah memindai semua objek dan semua referensi mereka. Namun, ini akan mencegah OS dari menukar memori meskipun itu tidak digunakan oleh aplikasi dan terasa seperti sejumlah besar pekerjaan yang perlu dilakukan, juga untuk "Koleksi Pembibitan". Tidak terasa mereka menang banyak dengan menggunakan kamar bayi.
Apakah saya kehilangan sesuatu atau apakah pemulung benar-benar memindai setiap objek dan setiap referensi setiap kali melakukan pengumpulan?