Сборщик мусора — это компонент системы управления памятью, который автоматически освобождает память, занятую объектами, которые больше не используются программой.
Основные принципы работы:
- Алгоритмы отслеживания: Сборщик мусора определяет, какие объекты доступны (достижимы из корневых точек, например, стека или глобальных переменных) и какие нет.
- Очистка: Объекты, помеченные как недоступные, удаляются, и занимаемая ими память возвращается в пул свободной памяти для дальнейшего использования.
Распространенные алгоритмы:
- Mark and Sweep (пометка и очистка)
- Copying (копирование)
- Generational (поколенческий)
- Reference Counting (подсчет ссылок)
Преимущества:
- Снижает вероятность утечек памяти.
- Упрощает управление памятью для разработчика.
- Повышает надежность приложения.
Недостатки:
- Может вызывать паузы (Stop-the-world события) во время сборки.
- Непредсказуемое время выполнения.
- Может занимать дополнительные системные ресурсы.