JRockit JVM チューニング ガイド
![]() |
![]() |
![]() |
![]() |
この節では、「ホットパス」または処理中のボトルネックを明らかにし、そのホットパスを回避したり完全に取り除いたりすることで、アプリケーションのパフォーマンスを改善する方法について説明します。
アプリケーションの分析と改善には以下の 4 つの手順があります。
ここで示す方法は Java プロファイラの通常の使い方とは多少異なります。 その違いは、アプリケーションの動作状況をより正確に把握するためのものです。 どんな種類のプロファイリングにも干渉が伴うため、観察対象のアプリケーションの動作は変わってしまいます。 したがって、アプリケーションの動作を正確には表していないデータを観察することになります。
プロファイリングの影響を最小限に抑えるには、収集するデータを少なくします (コールグラフではなくサンプリングによる分析を使用します)。ただし、このデータでは問題を見つけるのに不十分なことがあります。 したがって、実際のデータと、より干渉の多い方法で実行したときに得た情報とを組み合わせる必要があります。 それによってアプリケーションの動作状況をより正確に捉えることができます。 これを行うには、以下の手順に従います。
注意 : このメソッドはアプリケーションの正確なプロファイルを調べる優れた方法ですが、より徹底的な分析が必要になる場合もあります。
名前からもわかるように、ボトルネック メソッドは、実行するために過度の時間とリソースの処理を必要とするメソッドです。 これらのボトルネックは、システム パフォーマンスに大きく影響する可能性があるため、特定しておく必要があります。 ボトルネック メソッドを見つけるには、次の手順に従います。
注意 : VTune は「サンプリング」モードでのみ使用し、「コールグラフ」モードでは使用しないでください。
VTune の使い方の詳細については、ベンダのドキュメントを参照してください。
http://www.intel.com/software/products/vtune/
-Xrunjavaperf
オプションを設定してこのインタフェースを起動します。
-Xrunjavaperf
-Xjvmpi
オプションを使用します。
-Xjvmpi:allocs=off,monitors=off,entryexit=off
.
推奨される -Xjvmpi
設定のリストについては、「BEA JRockit でのプロファイリングとデバッグ」の表 4-1 を参照してください。
ボトルネック メソッドをホットパスに集結するには、次の手順に従います。
ホットパスを修正するには、アプリケーションについての独自の判断と知識に頼る必要があります。 ホットパスを特定して優先順位を決めたら、それぞれを確認して、ホットパスを回避したり取り除いたりするために、そのコードが本当に必要かどうか、コーディングやアルゴリズムを簡単に変更できるかどうかを判断します。 そのホットパスを削除できないと判断した場合は、より速くするためにできること、より効率的になるようにコードを書き直すことなどを検討してみます。
また、その対応策によって実際にパフォーマンスが改良されることを確認します。 最適化によってホットパスのパフォーマンスが 2 倍以上にならないと、努力が無駄になる可能性があります。 たとえば、5% の時間しか占めていないホットパスのパフォーマンスを 5% 向上しても、パフォーマンスは .25% しか向上しないことになります。
![]() |
![]() |
![]() |