[Java, JDeveloper] Improving the performance of JDeveloper11g (part 2) and JVMs in general

JDeveloper 11gのパフォーマンスチューニングに関する前回のエントリで記載したパラメータについて、全てサポートされていると弊社のJVM開発者が教えてくれました。また彼からは、これらの設定の意味も教えてくれましたので、ここでお伝えしたいと思います。

[訳注]
前回のエントリはこちら。
http://blogs.oracle.com/angelo/entry/improving_the_performance_of_jdeveloper
ロジ子訳はこちら。
http://orablogs-jp.blogspot.com/2011/10/improving-performance-of-jdeveloper-11g.html

-XX:+AggressiveOpts
これは最新かつ最高のJVM最適化機能を有効にします。おそらくほとんどのJavaアプリケーションに役立つと思われ、また完全にサポートされています。ただ欠点は、最新かつ最高の最適化ゆえに、知見を提供できないという可能性があります。このコマンドラインオプションで有効になる機能は"成熟"しているので、将来のJDKリリースではデフォルトになることでしょう。それゆえ、最新の最適化機能を導入する場所として、このコマンドラインオプションを検討することができます。将来、AggressiveOptからデフォルトの動作になるでしょう。

-XX:+OptimizeStringConcat
サーバJVMでのみ有効です。このオプションは、将来のJDK 7のアップデートリリースではデフォルトで有効になるかもしれません。このオプションでは、StringBuilder/ StringBufferのコンストラクトを遅らせ、StringBuilder/StringBufferに追加されている文字に基づき割り当てるchar[]のサイズを検知しようとすることにより、基礎となるchar[]のサイズ変更を回避しようとします。

-XX:+UseStringCache
JDeveloperが何度も繰り返し同じ文字列を割り当てることをご存知ないのであれば、これを使用すべきではありません。再三割り当てられている文字列が、最初の10万件の割り当てられた文字列のいずれかである、ということをご存知であれば、ということです。要するに、このオプションは使用しないことをお勧めします。実のところ、Java 7では(現在のところ)この機能が含まれていません。

-XX:+UseCompressedOops
64bit JVMにて利用可能です。64bit JVMをお使いの場合、このオプションを使うことをお勧めします。JDK 7 64bit JVMやJDK 6 64bit JVMでは自動で有効です。

-XX:+UseGCOverheadLimit
デフォルトでこのオプションは有効になっています。

もう一つ考慮しておくべきコマンドラインオプションが、-XX:+TieredCompilation で、これはJDK 6 Update 25以後、もしくはJDK 7で有効です。このオプションは、ぅらいあんとJVMの起動とサーバJVMの性能向上に効果があります。

すばらしいですね!

最後に、Charliesは私にできたてほやほやの新刊を教えてくれました。この本では、すべてのFusion Middlewareのチューニング演習で必須の、JVMのチューニングの詳細を述べています。


原文はこちら。
http://blogs.oracle.com/angelo/entry/improving_the_performance_of_jdeveloper11g

0 件のコメント:

コメントを投稿