digital-garden/knowledge/dev/java/gc/StopTheWorld.md

28 lines
1.7 KiB
Markdown
Raw Normal View History

2024-06-13 21:01:37 +03:00
---
aliases:
tags:
- зрелость/🌱
date: "[[2023-11-06]]"
zero-link:
2024-09-01 20:49:54 +03:00
- "[[../../../../garden/ru/meta/zero/00 Java разработка]]"
2024-06-13 21:01:37 +03:00
parents:
2024-09-01 20:49:54 +03:00
- "[[../../../../garden/ru/dev/java/gc/Garbage Collector]]"
linked:
2024-06-13 21:01:37 +03:00
---
Это временная остановка всех процессов программы для выполнения сборки мусора. При остановке намного проще выполнять сборку мусора.
## Marking
Так как граф объектов "заморожен", легко определить живые/мертвые объекты.
## [Copy Collector](Copy%20Collector.md)
Просто перемещать объекты в heap. Так как бизнес-логика не работает, heap может находится в не консистентном состоянии во время переноса.
## Выводы
**Минусы:**
- Приложение останавливается на все время сборки. Это время может достигать десятки секунд, что недопустимо для некоторых систем, например, систем реального времени.
- Скорость работы зависит от размера heap и от количества живых объектов, которые необходимо будет переносить.
**Где можно использовать:**
- В консольных одно-пользовательских приложениях
- В приложениях, где выполнение бизнес-логики занимает десятки минут.