Sobes.tech
Junior — Middle

Boshqariladigan dasturlash tillarida avtomatik axlat yig'ish qanday amalga oshiriladi?

sobes.tech AI

AIdan javob

O'zini boshqaradigan tillarda (masalan, C#) avtomatik axlat yig'ish (Garbage Collection, GC) maxsus mexanizm orqali amalga oshiriladi, u xotirada obyektlarni kuzatadi va ularga hech qanday havola qolmaganlarni bo'shatadi.

GC ning asosiy tamoyillari:

  • Havolalarni kuzatish: GC, asosiy havolalar (masalan, mahalliy o'zgaruvchilar, statik maydonlar) orqali erishilishi mumkin bo'lgan obyektlarni aniqlaydi.
  • Erishilmaydigan obyektlarni aniqlash: Havolasi bo'lmagan obyektlar axlat hisoblanadi.
  • Xotirani bo'shatish: GC, erishilmaydigan obyektlar tomonidan egallangan xotirani bo'shatadi.
  • Avlodlar: Axlat yig'ishni optimallashtirish uchun, u avlodlarga (Gen 0, Gen 1, Gen 2) bo'linadi, bu esa yosh obyektlarni ko'proq va uzoq umr ko'radiganlarni kamroq yig'ishni ta'minlaydi.

C# misoli:

class Program
{
    static void Main()
    {
        var obj = new object();
        // obyektdan foydalanish
        obj = null; // obyekt erishilmaydigan bo'ladi
        GC.Collect(); // majburiy axlat yig'uvchini chaqirish (amaliyotda kamdan-kam ishlatiladi)
    }
}

Shu tarzda, dasturchi xotirani qo'lda boshqarishdan ozod bo'ladi, bu esa xotira oqib ketish bilan bog'liq xatolarni kamaytiradi.