Sobes.tech
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.