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

39 lines
2.2 KiB
Markdown
Raw Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

---
aliases:
tags:
- зрелость/🌱
date: "[[2023-11-06]]"
zero-link:
- "[[00 Java разработка]]"
parents:
- "[[Garbage Collector]]"
linked:
- "[[Serial GC]]"
- "[[Concurrent Mark Sweep|Concurrent Mark Sweep]]"
---
Работает по тем же принципам, что и сборщик мусора [Scavenge](Serial%20GC.md), используя [Generational Collection](Generational%20Collection.md). Для молодого поколения используется [Copy Collector](Copy%20Collector.md), а для старого [Mark and Compact](Mark%20and%20Compact.md).
Отличие Parallel коллектора от [Serial](Serial%20GC.md) заключается в том, что он использует подход [Parallel Collection](Parallel%20Collection.md), то есть работает в несколько потоков во время [StopTheWorld](StopTheWorld.md).
Зеленые линии это потоки приложения, красные это потоки GC.
![](Pasted%20image%2020231107215457.png)
Также у этого коллектора есть возможность автоматической подстройки под требуемые параметры производительности и меньшие паузы на время сборок.
**Минусы:**
- Активное использование [StopTheWorld](StopTheWorld.md). Однако паузы уменьшаются за счет [Parallel Collection](Parallel%20Collection.md).
**Плюсы:**
- Малое потребление CPU на фоновую сборку мусора: 1%.
- Параллельная сборка молодого и старого поколения.
- Линейная [аллокация](Аллокация.md) объектов. Благодаря использованию [Mark and Compact](Mark%20and%20Compact.md).
**Где использовать:**
- Приложения для которых важна производительность.
- Железо с несколькими ядрами.
**Как включить:**
- `-XX:+UseParallelGC`
- `-XX:+UseParallelOldGC`