39 lines
2.2 KiB
Markdown
39 lines
2.2 KiB
Markdown
|
---
|
|||
|
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`
|