Junior
C#'ta Çöp Toplayıcı (Garbage Collector) nedir?
sobes.tech yapay zeka
AI'dan gelen yanıt
Bellek kullanımını otomatik olarak yöneten mekanizma, artık referanslara sahip olmayan nesnelerin kapladığı belleği serbest bırakır. Bu, bellek sızıntılarını önler ve geliştirme sürecini basitleştirir.
Çöp toplayıcısının çalışma prensipleri:
- Nesne takibi: Kök düğümlerden (statik alanlar, yığın üzerindeki yerel değişkenler) erişilebilir olan nesneleri belirler.
- Çöp toplama: Bir nesneye referans yoksa, çöp toplayıcı onu silmek üzere işaretler.
- Bellek serbest bırakma: Silinen nesnelerin kapladığı belleği serbest bırakır ve kalan belleği sıkıştırarak parçalanmayı azaltır.
Nesne nesilleri:
- Nesil 0: Yakın zamanda oluşturulmuş ve kısa ömürlü nesneleri içerir. Toplama sık gerçekleşir.
- Nesil 1: Nesil 0 toplamasını atlatmış nesneleri içerir. Toplama daha seyrek yapılır.
- Nesil 2: Uzun ömürlü nesneleri içerir. Toplama nadiren yapılır.
Zorunlu GC çağrısı (nadiren ve dikkatli kullanılır):
// Zorunlu çöp toplayıcı çağrısı
System.GC.Collect();
// Bekle, finalizer'ların tamamlanmasını
System.GC.WaitForPendingFinalizers();
.NET'teki ana çöp toplama mekanizması, işaretleme ve sıkıştırma algoritmasıdır.