Стек: Java 11, JVM, Garbage Collection
Цель: понять, как работает G1 GC, почему он стал GC по умолчанию, и как его настроить под ваше приложение. G1 (Garbage-First) — это серверный сборщик мусора, разработанный для: 💡 Основная идея:
Разделить кучу на регионы и собирать мусор “там, где его больше всего” — отсюда и название Garbage-First. Начиная с Java 9, G1 GC является сборщиком по умолчанию на server-class машинах. В отличие от Serial/Parallel/CMS, G1 не делит кучу на Young/Old как непрерывные области.
Вместо этого: 📌 Преимущество:
G1 может собирать мусор инкрементально, не останавливая всё приложение надолго. Фаза Тип Описание Initial Mark STW Помечает корни (обычно совмещается с Minor GC) Root Region Scanning Concurrent Сканирует ссылки из Survivor-регионов в Old Concurrent Marking Concurrent Помечает все живые объекты во всей куче Remark STW Завершает пометку, обрабатывает изменения за время concurrent marking Cleanup STW + Concurrent Определяет регионы с наибольшим количес