Sobes.tech
Junior

Какво е събирач на боклук (Garbage Collector)?

sobes.tech AI

Отговор от AI

Автоматичен механизъм за управление на паметта, който освобождава неизползваните обекти в купчината.

Принципи на работа:

  • Определяне на достъпността на обектите: Следи обектите, към които се отнасят живите (достъпни) обекти от корените (например, стека на нишките).
  • Освобождаване на недостъпните обекти: Обектите без препратки се считат за "мръсотия" и паметта им може да бъде повторно използвана.

Типове събирачи на боклук (зависят от езика/платформата):

  • Mark and Sweep: Маркира достъпните обекти (маркиране), след това преминава през купчината и освобождава немаркираните (почистване). Може да доведе до фрагментация на паметта.
  • Copying: Разделя купчината на две части. Копира живите обекти в новата част, след което почиства старата. Предотвратява фрагментацията, но изисква повече памет.
  • Генерационен: Разделя обектите по възраст на поколения. По-често събира боклука в "младото" поколение, където повечето обекти не живеят дълго.

Предимства:

  • Намалява вероятността от паметни течове.
  • Упростява разработката (не е необходимо явно да освобождава паметта).

Недостатъци:

  • Може да предизвика забавяния (паузи) по време на събиране.
  • Времето за събиране е непредсказуемо.