ナビゲーションをスキップ

JRockit JVM チューニング ガイド

  前 次 前/次ボタンと目次ボタンとの区切り線 目次  

アプリケーションのパフォーマンスの分析と改善

この節では、「ホットパス」または処理中のボトルネックを明らかにし、そのホットパスを回避したり完全に取り除いたりすることで、アプリケーションのパフォーマンスを改善する方法について説明します。

アプリケーションの分析と改善には以下の 4 つの手順があります。

交互の分析方法

ここで示す方法は Java プロファイラの通常の使い方とは多少異なります。 その違いは、アプリケーションの動作状況をより正確に把握するためのものです。 どんな種類のプロファイリングにも干渉が伴うため、観察対象のアプリケーションの動作は変わってしまいます。 したがって、アプリケーションの動作を正確には表していないデータを観察することになります。

プロファイリングの影響を最小限に抑えるには、収集するデータを少なくします (コールグラフではなくサンプリングによる分析を使用します)。ただし、このデータでは問題を見つけるのに不十分なことがあります。 したがって、実際のデータと、より干渉の多い方法で実行したときに得た情報とを組み合わせる必要があります。 それによってアプリケーションの動作状況をより正確に捉えることができます。 これを行うには、以下の手順に従います。

注意 : このメソッドはアプリケーションの正確なプロファイルを調べる優れた方法ですが、より徹底的な分析が必要になる場合もあります。

 


手順 1: ホットパスを見つける

ホットパスは以下の 2 つの手順で見つけます。

ボトルネック メソッドを見つける

名前からもわかるように、ボトルネック メソッドは、実行するために過度の時間とリソースの処理を必要とするメソッドです。 これらのボトルネックは、システム パフォーマンスに大きく影響する可能性があるため、特定しておく必要があります。 ボトルネック メソッドを見つけるには、次の手順に従います。

ボトルネック メソッドをホットパスに集結する

ボトルネック メソッドをホットパスに集結するには、次の手順に従います。

  1. OptimizeIt または JProbe などのプロファイラを実行します。
  2. プロファイラが生成した呼び出しトレースを確認します。
  3. 上記の呼び出しトレースと、「ボトルネック メソッドを見つける」で見つけたボトルネック メソッドを組み合わせます。 ボトルネック メソッドと呼び出しトレースの組み合わせから、ホットパスが特定されます。

 


手順 2: ホットパスの優先順位を決める

ホットパスの優先順位を決めるには、次の手順に従います。

  1. 各ホットパスでかかった時間を合計して、ホットパスの合計時間を算出します。
  2. ホットパスの合計時間の所定の割合 (たとえば、最初の割合として適しているのは 5%) よりも短いホットパスをすべて削除します。 これがホットパスのしきい値です。
  3. しきい値以下のホットパスを無視します。 しきい値以上のホットパス時間は最適化する必要があります。

 


手順 3: ホットパスを修正する

ホットパスを修正するには、アプリケーションについての独自の判断と知識に頼る必要があります。 ホットパスを特定して優先順位を決めたら、それぞれを確認して、ホットパスを回避したり取り除いたりするために、そのコードが本当に必要かどうか、コーディングやアルゴリズムを簡単に変更できるかどうかを判断します。 そのホットパスを削除できないと判断した場合は、より速くするためにできること、より効率的になるようにコードを書き直すことなどを検討してみます。

また、その対応策によって実際にパフォーマンスが改良されることを確認します。 最適化によってホットパスのパフォーマンスが 2 倍以上にならないと、努力が無駄になる可能性があります。 たとえば、5% の時間しか占めていないホットパスのパフォーマンスを 5% 向上しても、パフォーマンスは .25% しか向上しないことになります。

 


手順 4: 手順 1 ~ 3 を繰り返す

目的のシステム パフォーマンスに到達するまで、最適化の手順を繰り返します。

 

ページの先頭 前 次