28 lines
1.6 KiB
Markdown
28 lines
1.6 KiB
Markdown
|
---
|
|||
|
aliases:
|
|||
|
tags:
|
|||
|
- зрелость/🌱
|
|||
|
date: "[[2023-11-06]]"
|
|||
|
zero-link:
|
|||
|
- "[[00 Java разработка]]"
|
|||
|
parents:
|
|||
|
- "[[Garbage Collector]]"
|
|||
|
linked:
|
|||
|
---
|
|||
|
Это временная остановка всех процессов программы для выполнения сборки мусора. При остановке намного проще выполнять сборку мусора.
|
|||
|
|
|||
|
## Marking
|
|||
|
Так как граф объектов "заморожен", легко определить живые/мертвые объекты.
|
|||
|
|
|||
|
## [Copy Collector](Copy%20Collector.md)
|
|||
|
Просто перемещать объекты в heap. Так как бизнес-логика не работает, heap может находится в не консистентном состоянии во время переноса.
|
|||
|
|
|||
|
## Выводы
|
|||
|
|
|||
|
**Минусы:**
|
|||
|
- Приложение останавливается на все время сборки. Это время может достигать десятки секунд, что недопустимо для некоторых систем, например, систем реального времени.
|
|||
|
- Скорость работы зависит от размера heap и от количества живых объектов, которые необходимо будет переносить.
|
|||
|
|
|||
|
**Где можно использовать:**
|
|||
|
- В консольных одно-пользовательских приложениях
|
|||
|
- В приложениях, где выполнение бизнес-логики занимает десятки минут.
|