Sobes.tech
Junior

C#-də tullantı toplayıcı (Garbage Collector) nədir?

sobes.tech Süni İntellekt

AI-dan cavab

Avtomatik yaddaş idarəetmə mexanizmi, artıq referanslara malik olmayan obyektlərin tutduğu yaddaşı azad edir. Bu, yaddaş sızmalarının qarşısını alır və inkişaf prosesini sadələşdirir.

Qəhrəman toplayıcısının işləmə prinsipləri:

  1. Obyektlərin izlənməsi: Hələ də kök düyünlərdən (statik sahələr, yığın üzərində yerli dəyişənlər) əlçatan olan obyektləri müəyyən edir.
  2. Tullantıların toplanması: Əgər obyektə referans yoxdursa, qəhrəman toplayıcı onu silmək üçün işarələyir.
  3. Yaddaşın azad olunması: Silinmiş obyektlərin tutduğu yaddaşı azad edir və qalan yaddaşı sıxışdıraraq parçalanmanı azaldır.

Obyekt nəsilləri:

  • 0-cı nəsil: Yaxın zamanda yaradılmış və qısa ömürlü obyektləri əhatə edir. Toplama tez-tez baş verir.
  • 1-ci nəsil: 0-cı nəsil toplamasını keçmiş obyektləri əhatə edir. Toplama daha az baş verir.
  • 2-ci nəsil: Uzunömürlü obyektləri əhatə edir. Toplama nadir hallarda baş verir.

Zəruri GC çağırışı (nadir və ehtiyatla istifadə olunur):

// Zəruri yaddaş toplanması çağırışı
System.GC.Collect();
// Finalizatorların tamamlanmasını gözləyir
System.GC.WaitForPendingFinalizers();

.NET-də əsas yaddaş toplanma mexanizmi işarələmə və sıxışdırma algoritmidir.