♻️ G1 за восемь версий JDK: что успели переделать
G1, или Garbage-First, — сборщик мусора в JVM, который делит heap на регионы и старается удерживать паузы под контролем за счёт поэтапной очистки памяти. Для многих Java-приложений это уже привычный GC по умолчанию.
Но за знакомым названием скрывается сборщик, который от JDK 17 до 25 успели заметно перекроить.
Дмитрий Соломенников разобрал на Хабр, как менялся G1 и какие реальные проблемы эксплуатации стояли за этими изменениями. Как:
— в JDK 17 улучшили работу с humongous objects, а в одном из сценариев Full GC стал проходить на 10–12% быстрее;
— в JDK 18 переработали remembered set и сократили потребление памяти почти на 25%;
— в JDK 20 переход на tri-color marking высвободил около 1,5% кучи;
— в JDK 21 G1 научился перемещать humongous objects во время Full GC, чтобы бороться с фрагментацией;
— в JDK 24–25 доработали настройку эвристик и сценарии, которые могли неожиданно растягивать паузы.
Получилась полноценная биография G1: от устройства регионов и remembered set до оптимизаций, которые появились после лет эксплуатации в проде.
🔷 История G1 от JDK 17 до 25 — на Хабре
Post #719
442

- 👍 4
- ❤ 1
- 👨💻 1