web-dev-qa-db-ja.com

Sun JRE 1.6u20で-XX:+ AggressiveOptsによって有効になるフラグは何ですか?

Sun JRE パフォーマンスチューニングホワイトペーパー から、_-XX:+AggressiveOpts_フラグは次のように記述されます。

今後のリリースでデフォルトでオンになると予想されるポイントパフォーマンス最適化をオンにします。このフラグによってグループ化される変更は、JVMランタイムコンパイル済みコードに対するマイナー変更であり、明確なパフォーマンス機能(BiasedLockingやParallelOldGCなど)ではありません。これは、今後のリリースでJVMエンジニアリングチームの最新のパフォーマンス調整を試すのに適したフラグです。注:このオプションは実験的なものです!このオプションによって有効になる特定の最適化は、リリースごとに、さらにはビルドごとに変わる可能性があります。 Javaの新しいリリースをデプロイする前に、このオプションの影響を再評価する必要があります。

私のパフォーマンステストは、_-XX:+AggressiveOpts_を使用すると実際にアプリケーションに役立つことを示していますが、これは実験的であるとマークされているので、注意が必要です(以前はこの問題に悩まされていました)。そのため、1.6u20で_-XX:+AggressiveOpts_によって有効になるフラグを知りたいのですが。通常、これは_hotspot/src/share/vm/runtime/arguments.cpp_ファイルのメソッドArguments::set_aggressive_opts_flags()を確認することで行いますが、- http://download.Java.net/で1.6u20へのソースを見つけることができません。 jdk6/source /

  • どのフラグ_-XX:+AggressiveOpts_が有効かを把握する他の方法はありますか?
  • 1.6u20リリースのソースはどこで入手できますか?
31
Binil Thomas

特定のリリースを確認するには:

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}
41
valodzka

このブログ投稿をチェックして、コードに飛び込む必要がないことを確認してください。 http://q-redux.blogspot.com/2011/01/inspecting-hotspot-jvm-options.html

6