Sobes.tech
Junior — Middle

Yönetilen programlama dillerinde otomatik çöp toplama nasıl gerçekleştirilir?

sobes.tech yapay zeka

AI'dan gelen yanıt

Yönetilen dillerde (örneğin, C#) Otomatik Çöp Toplama (Garbage Collection, GC), bellekteki nesneleri izleyen ve artık referans olmayanları serbest bırakan özel bir mekanizma aracılığıyla gerçekleştirilir.

GC'nin temel ilkeleri:

  • Referansların Takibi: GC, kök referanslardan (örneğin, yerel değişkenler, statik alanlar) erişilebilir olan nesneleri belirler.
  • Erişilemeyen nesnelerin belirlenmesi: Referansı olmayan nesneler çöp olarak kabul edilir.
  • Belleğin serbest bırakılması: GC, erişilemeyen nesnelerin kapladığı belleği serbest bırakır.
  • Nesil: Çöp toplamanın optimize edilmesi için nesiller (Gen 0, Gen 1, Gen 2) halinde bölünür, bu da genç nesnelerin daha sık, uzun ömürlü olanların ise daha az toplanmasını sağlar.

C# örneği:

class Program
{
    static void Main()
    {
        var obj = new object();
        // obj kullanılıyor
        obj = null; // nesne erişilemez hale gelir
        GC.Collect(); // zorunlu çöp toplayıcı çağrısı (gerçek uygulamalarda nadiren kullanılır)
    }
}

Bu şekilde, programcı belleği manuel olarak yönetmek zorunda kalmaz, bu da bellek sızıntılarıyla ilgili hataları azaltır.