Адаптивный размер в сборщиках мусора JVM

Для режима сервера Oracle JVM 1.8 можно Parallel, CMS, а также G1 Коллекторы динамически меняют соотношение молодого поколения к старому поколению? Каково соотношение по умолчанию молодого поколения к старому поколению в этих трех сборщиках?

Parallel = -XX:+UseParallelGC -XX:+UseParallelOldGC

CMS = -XX:+UseConcMarkSweepGC

G1 = -XX:+UseG1GC

2 ответа

Решение

Значения по умолчанию часто зависят от версии и машины или могут изменяться в зависимости от других устанавливаемых параметров. Так что лучше всего просто запросить JVM.

например, использовать java -XX:+UseG1GC -XX:+PrintFlagsFinal чтобы увидеть значения по умолчанию, включая те, которые получены на основе выбранного G1.

G1 и параллельный коллектор поддерживают адаптивное определение размеров, а CMS - нет, вместо этого он настраивает пороги владения во время выполнения.

Что ж, это может быть не в состоянии ответить на точные детали с точки зрения того, каково соотношение ГХ как таковых, но эта статья под названием oraclecollectors говорит о том, что здесь будет подробно описано:

Говоря о комбинациях сборщиков мусора, он не превращается в дюжину комбинаций, потому что не все эти сборщики работают друг с другом.

  • G1 по сути, антисоциальный коллекционер, которому не нравится работать с кем-либо еще.

  • Серийные коллекционеры - "собранные последним" коллекционеры

  • Коллекционерам "PS" нравится работать друг с другом;

  • ParNew а также Concurrent Коллекционеры хорошо работают вместе.

Начиная с Java9 (с возможностью отключения политики адаптивного определения размеров) и JEP 248: сделать G1 сборщиком мусора по умолчанию, и это почти все, что будет только один GC. До сих пор, хотя все еще существует возможный список, который автор придумал с точки зрения параметров алгоритма сборки мусора. Совместное использование экрана из самой связанной статьи:

Надеюсь, это поможет.

Другие вопросы по тегам