Junior
Какво е събирач на боклук (Garbage Collector)?
sobes.tech AI
Отговор от AI
Автоматичен механизъм за управление на паметта, който освобождава неизползваните обекти в купчината.
Принципи на работа:
- Определяне на достъпността на обектите: Следи обектите, към които се отнасят живите (достъпни) обекти от корените (например, стека на нишките).
- Освобождаване на недостъпните обекти: Обектите без препратки се считат за "мръсотия" и паметта им може да бъде повторно използвана.
Типове събирачи на боклук (зависят от езика/платформата):
- Mark and Sweep: Маркира достъпните обекти (маркиране), след това преминава през купчината и освобождава немаркираните (почистване). Може да доведе до фрагментация на паметта.
- Copying: Разделя купчината на две части. Копира живите обекти в новата част, след което почиства старата. Предотвратява фрагментацията, но изисква повече памет.
- Генерационен: Разделя обектите по възраст на поколения. По-често събира боклука в "младото" поколение, където повечето обекти не живеят дълго.
Предимства:
- Намалява вероятността от паметни течове.
- Упростява разработката (не е необходимо явно да освобождава паметта).
Недостатъци:
- Може да предизвика забавяния (паузи) по време на събиране.
- Времето за събиране е непредсказуемо.