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

1.7 KiB
Raw Blame History

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

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

Marking

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

Copy Collector

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

Выводы

Минусы:

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

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

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