Junior
Tullantı toplayıcı (Garbage Collector) nədir?
sobes.tech Süni İntellekt
AI-dan cavab
Avtomatik yaddaş idarəetmə mexanizmi, istifadə olunmayan obyektləri yığından azad edir.
İş prinsipləri:
- Obyektlərin əlçatanlığının müəyyən edilməsi: Canlı (əldə olunan) obyektlərdən köklərdən (məsələn, işçi ipliklərinin yığını) istinad edən obyektləri izləyir.
- Əldə olunmayan obyektlərin azad edilməsi: İstinad olmayan obyektlər "tullantı" kimi qəbul edilir və onların yaddaşı yenidən istifadə oluna bilər.
Tullantı toplayıcıların növləri (dil/platfroma görə dəyişir):
- Mark and Sweep: Əldə olunan obyektləri işarələyir (işarələmə), sonra yığını keçir və işarələnməyənləri azad edir (təmizləmə). Bu yaddaşın parçalanmasına səbəb ola bilər.
- Copying: Yığını iki hissəyə bölür. Canlı obyektləri yeni hissəyə köçürür, sonra köhnə hissəni təmizləyir. Parçalanmanı qarşısını alır, lakin daha çox yaddaş tələb edir.
- Nəsil: Obyektləri yaşlarına görə nəsillərə ayırır. Əsasən "gənc" nəsildə tullantıları toplayır, burada çox obyekt qısa müddət yaşayır.
Üstünlüklər:
- Yaddaş sızmalarının ehtimalını azaldır.
- İnkişafı sadələşdirir (yaddaşı açıq şəkildə azad etməyə ehtiyac yoxdur).
Əksikliklər:
- Toplama zamanı gecikmələr (dayanma) yarada bilər.
- Toplama vaxtı əvvəlcədən proqnozlaşdırıla bilməz.