Sobes.tech
Junior — Middle

İdarə olunan proqramlaşdırma dillərində avtomatik tullantı yığımı necə həyata keçirilir?

sobes.tech Süni İntellekt

AI-dan cavab

Yönetilen dillərdə (məsələn, C#) avtomatik tullantıların toplanması (Garbage Collection, GC) xüsusi mexanizm vasitəsilə həyata keçirilir ki, bu mexanizm yaddaşdakı obyektləri izləyir və artıq referans olmayanları azad edir.

GC-nin əsas prinsipləri:

  • Referansların izlənməsi: GC, kök referanslardan (məsələn, yerli dəyişənlər, statik sahələr) əldə edilə bilən obyektləri müəyyən edir.
  • Əldə olunmayan obyektlərin aşkarlanması: Referansı olmayan obyektlər tullantı hesab olunur.
  • Yaddaşın azad edilməsi: GC, əldə olunmayan obyektlərin tutduğu yaddaşı azad edir.
  • Nəsil: Tullantıların toplanmasını optimallaşdırmaq üçün, bu nəsillərə (Gen 0, Gen 1, Gen 2) bölünür, bu da gənc obyektlərin daha çox, uzunömürlü olanların isə daha az toplanmasına imkan verir.

C# nümunəsi:

class Program
{
    static void Main()
    {
        var obj = new object();
        // obyektin istifadəsi
        obj = null; // obyekt əldə olunmayan olur
        GC.Collect(); // məcburi tullantı toplayıcısının çağırılması (əsl tətbiqlərdə nadir hallarda istifadə olunur)
    }
}

Bu şəkildə, proqramçı yaddaşı əl ilə idarə etməkdən azad olur, bu da yaddaş sızıntıları ilə bağlı səhvləri azaldır.