Junior — Middle
İdarə olunan proqramlaşdırma dillərində tullantıların toplanması mexanizmini izah edə bilərsinizmi?
sobes.tech Süni İntellekt
AI-dan cavab
Tullantı toplayıcı (Garbage Collector, GC) idarə olunan proqramlaşdırma dillərində artıq istifadə olunmayan obyektlərin tutduğu yaddaşı avtomatik olaraq azad edir.
Əsas iş prinsipləri:
- Obyektlərin əlçatanlığının izlənməsi: GC hansı obyektlərin kök nöqtələrindən (məsələn, qlobal dəyişənlər, çağırış yığını) əlçatan olduğunu müəyyən edir. Əgər obyekt əlçatan deyilsə, o, tullantı sayılır.
- Yaddaşın azad olunması: Əlçatan olmayan obyektlər silinir və onların tutduğu yaddaş sistemə geri qaytarılır.
Go-da, tullantı toplayıcı əlçatanlıq sayımı ilə izləme prinsipi əsasında işləyir. O, dövri olaraq işləyir, proqramın icrasını qısa müddətə dayandırır (stop-the-world), hansı obyektlərin canlı olduğunu müəyyən etmək üçün.
Go, aşağı gecikməli, müstəqil və paralel GC istifadə edir, bu da performansa təsirini minimuma endirir.
Bu şəkildə, proqramçı yaddaşı əl ilə idarə etməyə ehtiyac duymur, bu da sızmalar və ikiqat azad etmə ilə bağlı səhvləri azaldır.