Bazı (en azından Mono ve .NET'ler) çöp toplayıcıların, sık sık taradıkları kısa süreli bir bellek alanı ve daha az sıklıkta taradıkları ikincil bir hafıza alanı vardır. Mono buna kreş diyor.
Hangi nesnelerin atılabileceğini bulmak için, köklerden, yığından ve kayıtlardan başlayarak tüm nesneleri tarar ve artık referans alınmayan tüm nesneleri atarlar.
Benim sorum, kullanılan tüm belleğin her koleksiyonda taranmasını nasıl önledikleri? Prensip olarak, artık hangi nesnelerin kullanılmadığını öğrenmenin tek yolu tüm nesneleri ve tüm referanslarını taramaktır. Ancak bu, uygulama tarafından kullanılmasa da işletim sisteminin belleği değiştirmesini önler ve "Nursery Collection" için de yapılması gereken çok fazla iş gibi hisseder. Bir kreş kullanarak çok fazla kazanıyor gibi hissetmiyorlar.
Bir şey eksik mi veya çöp toplayıcı aslında her koleksiyonda her nesneyi ve her referansı tarar mı?