Есть ли какое-либо условие, когда приложение никогда не будет выполнять сборку мусора?
Вы можете предотвратить запуск ГХ, если у вас есть Поток, который не достигает безопасной точки.
Если вы не используете параллельный коллектор, ГХ будет выполняться только тогда, когдаобласть памяти, например, при заполнении пробелов Eden или Tenure.
Если вы сделаете их достаточно большими, а уровень мусора достаточно низким, GC не будет работать достаточно долго, чтобы вы могли выполнить GC за ночь,в окне обслуживания или перезапустите процесс.
Теоретически возможно ли иметь такой дизайн приложения?
Я работал над приложениями, которые собирают GC менее одного раза в день (и некоторые из них перезапускаются каждый день)
Например, допустим, вы производите 300 КБ мусора в секунду, или 1 ГБ в час, с размером Eden 24 ГБ, который вы можете запустить в течение целого дня без сбора.
В действительности, если вы перемещаете большую часть своих данных вне кучи, например, Chronicle Map или Queue, вы можете найти 4 ГБ, которые могут работать в течение дня или даже недели с небольшим сбором.