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

Bin*_*mas 31 java performance jvm

从Sun JRE 性能调优白皮书中,-XX:+AggressiveOptsflag被描述为:

打开在即将发布的版本中默认打开的点性能优化.按此标志分组的更改是对JVM运行时编译代码的微小更改,而不是不同的性能功能(例如BiasedLocking和ParallelOldGC).这是尝试JVM工程团队即将发布的最新性能调整的好旗帜.注意:此选项是实验性的!此选项启用的特定优化可以在发行版之间进行更改,甚至可以构建到构建版本.在部署新版本的Java之前,您应该重新评估此选项的效果.

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

  • 有没有其他方法来弄清楚什么标志-XX:+AggressiveOpts 启用?
  • 我在哪里可以获得1.6u20版本的资源?

val*_*zka 41

检查特定版本:

java -XX:-AggressiveOpts -XX:+UnlockDiagnosticVMOptions -XX:+PrintFlagsFinal -version > no_agg
java -XX:+AggressiveOpts -XX:+UnlockDiagnosticVMOptions -XX:+PrintFlagsFinal -version > agg
Run Code Online (Sandbox Code Playgroud)

然后制作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}
Run Code Online (Sandbox Code Playgroud)

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}
Run Code Online (Sandbox Code Playgroud)


小智 6

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