digital-garden/knowledge/dev/java/gc/Shenandoah GC.md
2024-06-13 21:01:37 +03:00

2.5 KiB
Raw Blame History

aliases tags date zero-link parents linked
зрелость/🌱
2023-11-08
00 Java разработка
Garbage Collector
ZGC

Входит в состав OpenJDK начиная с Java 12, но есть порты сборщика в Java 11.

Похож на G1:

  • Также использует с разбиением на регионы
  • Политика сборки: в первую очередь собирает регионы с большим количеством мусора

Не похож на G1:

  • Отсутствует деление на молодые/старые сборки

  • Учетом ссылок между регионами. Используется Matrix.

  • Требует барьеры на запись на всех записях. Но на практике эти барьеры срабатывают редко, только во время эвакуации, на редких эвакуируемых объектах, в момент когда они еще не были перемещены.

Алгоритм работы

  • Concurrent Mark начинается с маленькой паузы StopTheWorld.
  • Final Mark еще одна небольшая пауза StopTheWorld
    • В это время выбираются регионы с максимальным количеством мусора.
  • Concurrent Evacuation
    • Ключевое отличие от G1. G1 использует StopTheWorld. В этом месте.

На самом деле есть еще 2 коротенькие паузы.

Также

Плюсы:

  • Относится к ultra-low latency GC. Паузы около 1 ms.
  • Продолжительность сборки не зависят от размера хипа и количества живых объектов

Дополнительный материал