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

1.6 KiB
Raw Blame History

aliases tags date zero-link parents linked
зрелость/🌱
2023-11-06
00 Java разработка
Garbage Collector

Это временная остановка всех процессов программы для выполнения сборки мусора. При остановке намного проще выполнять сборку мусора.

Marking

Так как граф объектов "заморожен", легко определить живые/мертвые объекты.

Copy Collector

Просто перемещать объекты в heap. Так как бизнес-логика не работает, heap может находится в не консистентном состоянии во время переноса.

Выводы

Минусы:

  • Приложение останавливается на все время сборки. Это время может достигать десятки секунд, что недопустимо для некоторых систем, например, систем реального времени.
  • Скорость работы зависит от размера heap и от количества живых объектов, которые необходимо будет переносить.

Где можно использовать:

  • В консольных одно-пользовательских приложениях
  • В приложениях, где выполнение бизнес-логики занимает десятки минут.