Параметры Java7 G1

Я не могу найти никаких вариантов, касающихся того, как работает G1. Следующие две команды больше не работают с java7.

-XX:+G1ParallelRSetUpdatingEnabled 
-XX:+G1ParallelRSetScanningEnabled 

person Slava Markeyev    schedule 24.11.2011    source источник


Ответы (2)


Единственные варианты, о которых я знаю, которые влияют на G1, это:

  • активировать:

    -XX:+UnlockExperimentalVMOptions -XX:+UseG1GC

  • чтобы установить максимальную цель времени паузы GC в миллисекундах, которую G1 попытается выполнить:

    -XX:MaxGCPauseMillis=<X>

  • чтобы установить интервал времени, в течение которого могут иметь место паузы GC в сумме до MaxGCPauseMillis:

    -XX:GCPauseIntervalMillis=<X>

  • чтобы установить размер молодого поколения, чтобы повлиять на время паузы эвакуации:

    -XX:+G1YoungGenSize=512m (также отключено в некоторых версиях)

  • установить (не только для G1) размер ячеек выживших

    -XX:SurvivorRatio=6 (и другие параметры, связанные с выжившими)

Быстрое предупреждение

Имейте в виду, что все типы опций -XX считаются экспериментальными и могут быть изменены в любое время (поэтому обычно это не то, что вы хотите вставить в сценарий .{bat,sh}, wrapper.conf или файл конфигурации, используемый для быстрого запуска вашего корпоративного приложения.

Они довольно полезны, но не стоит слишком на них полагаться, если вам нужен стабильный и надежный лаунчер.


Упомянутые вами два параметра, которые изначально были доступны во время первого общедоступного выпуска G1 в ходе обновлений Java SE 6, теперь устарели. То же самое имеет G1YoungGenSize в некоторых версиях.


Источники:

person haylem    schedule 29.02.2012

Java 7 update 4 теперь "полностью поддерживает" сборщик мусора G1, но кажется, что эти параметры больше не доступны. :(

Эти ссылки проливают свет на разрешенные флаги JVM:

Описание G1 GC

параметры JVM

person Darwyn    schedule 03.06.2012