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.