Автоматический процесс управления памятью, который удаляет неиспользуемые объекты из кучи (heap), освобождая занимаемое ими пространство. Garbage Collector (GC) определяет, какие объекты доступны (referenceable) из работающих частей программы, а какие — нет (unreachable), и удаляет последние.
Основные этапы:
- Marking (Пометка): GC определяет, какие объекты живы ( reachable) начиная с корней (например, локальные переменные активных потоков, статические переменные).
- Sweeping (Очистка): GC проходит по куче и удаляет все объекты, не помеченные как живые.
- Compacting (Компактизация, необязательно): Перемещает живые объекты, чтобы уменьшить фрагментацию памяти.
Достоинства:
- Упрощает разработку, избавляя от ручного управления памятью.
- Снижает риск утечек памяти (memory leaks) и ошибок доступа к освобожденной памяти (dangling pointers).
Недостатки:
- Могут возникать паузы в работе приложения (Stop-the-World events) во время сборки мусора.
- GC требует вычислительных ресурсов.
Различные алгоритмы сборки мусора (Serial GC, Parallel GC, CMS, G1, ZGC, Shenandoah) о
Автоматический процесс управления памятью, который удаляет неиспользуемые объекты из кучи (heap), освобождая занимаемое ими пространство. Garbage Collector (GC) определяет, какие объекты доступны (referenceable) из работающих частей программы, а какие — нет (unreachable), и удаляет последние.
Основные этапы:
- Marking (Пометка): GC определяет, какие объекты живы ( reachable) начиная с корней (например, локальные переменные активных потоков, статические переменные).
- Sweeping (Очистка): GC проходит по куче и удаляет все объекты, не помеченные как живые.
- Compacting (Компактизация, необязательно): Перемещает живые объекты, чтобы уменьшить фрагментацию памяти.
Достоинства:
- Упрощает разработку, избавляя от ручного управления памятью.
- Снижает риск утечек памяти (memory leaks) и ошибок доступа к освобожденной памяти (dangling pointers).
Недостатки:
- Могут возникать паузы в работе приложения (Stop-the-World events) во время сборки мусора.
- GC требует вычислительных ресурсов.
Различные алгоритмы сборки мусора (Serial GC, Parallel GC, CMS, G1, ZGC, Shenandoah) о