Подтвердить что ты не робот

Какие флаги включены -XX: + AggressiveOpts на Sun JRE 1.6u20?

От Sun JRE технический отчет по настройке производительности, флаг -XX:+AggressiveOpts описывается как:

Включает производительность точки оптимизации, которые, как ожидается, будут по умолчанию в будущих выпусках. Изменения, сгруппированные по этому знаку, незначительные изменения в среде выполнения JVM код и нечеткая производительность (например, BiasedLocking и ParallelOldGC). Это хороший флаг для попробуйте последнюю команду разработчиков JVM улучшения производительности для предстоящих релизы. Примечание: этот параметр Экспериментальная! Конкретные оптимизация включена этой опцией может перейти от выпуска к выпуску и даже строить. Вам следует переоценить последствия этой опции до развертывания новой версии Java.

Мои тесты производительности показывают, что использование -XX:+AggressiveOpts действительно помогает моему приложению, но поскольку это отмечено как экспериментальное, я хочу быть осторожным с ним (в прошлом я был сожжен им). Итак, я хочу знать, какие флаги включены -XX:+AggressiveOpts на 1.6u20. Обычно я делаю это, просматривая метод Arguments::set_aggressive_opts_flags() в файле hotspot/src/share/vm/runtime/arguments.cpp, но я не могу найти источники для 1.6u20 по адресу http://download.java.net/jdk6/source/.

  • Есть ли другой способ выяснить, какие флаги -XX:+AggressiveOpts включить?
  • Где я могу получить источники на выпуск 1.6u20?
4b9b3361

Ответ 1

Чтобы проверить его для конкретного выпуска:

java -XX:-AggressiveOpts -XX:+UnlockDiagnosticVMOptions -XX:+PrintFlagsFinal -version > no_agg
java -XX:+AggressiveOpts -XX:+UnlockDiagnosticVMOptions -XX:+PrintFlagsFinal -version > agg

И затем сделайте diff (diff -U0 no_agg agg).

Например, jdk 1.7.0_51:

-     bool AggressiveOpts                           := false           {product}
+     bool AggressiveOpts                           := true            {product}

-     intx AutoBoxCacheMax                           = 128             {C2 product}
+     intx AutoBoxCacheMax                           = 20000           {C2 product}

-     intx BiasedLockingStartupDelay                 = 4000            {product}
+     intx BiasedLockingStartupDelay                 = 500             {product}

-     bool UseFPUForSpilling                         = false           {C2 product}
+     bool UseFPUForSpilling                         = true            {C2 product}

Jdk 1.8.0:

-     bool AggressiveOpts                           := false           {product}
+     bool AggressiveOpts                           := true            {product}

-     intx AutoBoxCacheMax                           = 128             {C2 product}
+     intx AutoBoxCacheMax                           = 20000           {C2 product}

-     intx BiasedLockingStartupDelay                 = 4000            {product}
+     intx BiasedLockingStartupDelay                 = 500             {product}

-     bool EliminateAutoBox                          = false           {C2 product}
+     bool EliminateAutoBox                          = true            {C2 product}

-     bool UseFPUForSpilling                         = false           {C2 product}
+     bool UseFPUForSpilling                         = true            {C2 product}