2.5 KiB
2.5 KiB
aliases | tags | date | zero-link | parents | linked | ||||
---|---|---|---|---|---|---|---|---|---|
|
2023-11-08 |
|
|
|
Входит в состав 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.
- Продолжительность сборки не зависят от размера хипа и количества живых объектов