44 lines
2.5 KiB
Markdown
44 lines
2.5 KiB
Markdown
|
---
|
|||
|
aliases:
|
|||
|
tags:
|
|||
|
- зрелость/🌱
|
|||
|
date: "[[2023-11-08]]"
|
|||
|
zero-link:
|
|||
|
- "[[00 Java разработка]]"
|
|||
|
parents:
|
|||
|
- "[[Garbage Collector]]"
|
|||
|
linked:
|
|||
|
- "[[ZGC]]"
|
|||
|
---
|
|||
|
Входит в состав OpenJDK начиная с [[Java 12]], но есть порты сборщика в [Java 11](Java%2011).
|
|||
|
|
|||
|
Похож на [G1](Garbage%20First.md):
|
|||
|
- Также использует с разбиением на регионы
|
|||
|
- Политика сборки: в первую очередь собирает регионы с большим количеством мусора
|
|||
|
|
|||
|
Не похож на [G1](Garbage%20First.md):
|
|||
|
- Отсутствует деление на молодые/старые сборки
|
|||
|
- Учетом ссылок между регионами. Используется Matrix.
|
|||
|
|
|||
|
- Требует [барьеры на запись](Барьеры%20в%20программировании.md) на всех записях. Но на практике эти барьеры срабатывают редко, только во время эвакуации, на редких эвакуируемых объектах, в момент когда они еще не были перемещены.
|
|||
|
|
|||
|
## Алгоритм работы
|
|||
|
![](Pasted%20image%2020231108141041.png)
|
|||
|
- [Concurrent Mark](Concurrent%20Collection.md) начинается с маленькой паузы [StopTheWorld](StopTheWorld.md).
|
|||
|
- Final Mark еще одна небольшая пауза [StopTheWorld](StopTheWorld.md)
|
|||
|
- В это время выбираются регионы с максимальным количеством мусора.
|
|||
|
- [Concurrent Evacuation](Concurrent%20Collection.md)
|
|||
|
- Ключевое отличие от [G1](Garbage%20First.md). G1 использует [StopTheWorld](StopTheWorld.md). В этом месте.
|
|||
|
|
|||
|
На самом деле есть еще 2 коротенькие паузы.
|
|||
|
![](Pasted%20image%2020231112162050.png)
|
|||
|
|
|||
|
Также
|
|||
|
|
|||
|
**Плюсы:**
|
|||
|
- Относится к ultra-low latency GC. Паузы около 1 ms.
|
|||
|
- Продолжительность сборки не зависят от размера хипа и количества живых объектов
|
|||
|
|
|||
|
## Дополнительный материал
|
|||
|
- [Алексей Шипилёв — Shenandoah: сборщик мусора, который смог - YouTube](https://www.youtube.com/watch?v=ZYiQCHxgABI)
|
|||
|
- [Алексей Шипилёв — Shenandoah: сборщик мусора, который смог (часть 2) - YouTube](https://www.youtube.com/watch?v=HBWaffsl7fo)
|