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.