在Sun JRE 1.6u20上-XX:+ AggressiveOpts启用了哪些标志?

时间:2010-06-02 17:07:05

标签: performance jvm java

从Sun JRE performance tuning whitepaper-XX:+AggressiveOpts标志被描述为:

  

打开点性能   预期的优化   在即将发布的版本中默认启用。   按此标志分组的更改是   对编译的JVM运行时的微小更改   代码并没有明显的性能   功能(如BiasedLocking和   ParallelOldGC)。这是一个很好的标志   试试JVM工程团队的最新动态   即将到来的性能调整   版本。注意:此选项是   实验!具体   此选项启用优化   可以从发布版本更改为发布版本   甚至建立起来。你应该   重新评估此选项的效果   在部署新版本之前   Java。

我的性能测试表明使用-XX:+AggressiveOpts实际上有助于我的应用程序,但由于这被标记为实验性的,我要小心它(过去我被它烧过)。所以,我想知道1.6u20上-XX:+AggressiveOpts启用了哪些标志。通常我会通过查看Arguments::set_aggressive_opts_flags()文件中的方法hotspot/src/share/vm/runtime/arguments.cpp来执行此操作,但我无法在http://download.java.net/jdk6/source/找到1.6u20的来源。

  • 还有其他方法可以找出标志-XX:+AggressiveOpts 启用?
  • 我在哪里可以获得1.6u20版本的资源?

2 个答案:

答案 0 :(得分:41)

检查特定版本:

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

然后制作差异(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}

答案 1 :(得分:6)

查看此博客文章,无需深入了解代码即可查找。 http://q-redux.blogspot.com/2011/01/inspecting-hotspot-jvm-options.html