リソース集中型メソッドを識別する

以下の場合、メソッドは最適化の候補者である場合があります。

頻繁に呼び出されるメソッドを見つけるには、以下のようにします。

  1. 実行フロー情報の収集が使用可能になっていることを確認します。 この操作はプロファイルを作成するアプリケーションを起動、または そのアプリケーションに接続したときに行います。 プロファイル作成オプションの 「アプリケーションが遅すぎる (My application is too slow)」 を選択し、次に詳細オプションから 「実行フローのグラフィカル詳細の表示 (Show Execution flow graphical details)」 を選択します。 
  2. プロファイル・モニター・ビューで、モニターまたはエージェントを選択します。
  3. 右マウス・ボタンをクリックし、次に「開く (Open With)」> 「実行フロー (Execution Flow)」の順に選択します。実行フロー・ビューが開きます。
  4. ズームイン (Zoom In)」ボタン ズームイン・ボタン・アイコン をクリックして、メソッド呼び出しのシーケンスを拡大します。
  5. 右マウス・ボタンをクリックし、次に 「すべての繰り返しを検出 (Detect All Repetitions)」 を選択します。繰り返されているパターンがある箇所に、X が表示されます。  
  6. これらの領域にズームインして、繰り返されているパターンと、メソッドの反復回数を表示します。 

実行時間が長いメソッドを見つけるには、以下のようにします。

  1. 特定のリソースのプロセスを起動または接続し、次に 実行フロー・ビューを開きます。 
    注:
    このビューは、エージェント、プロセス、ホスト、またはモニターから 開くことができます。 ただし、これらのリソースからの情報が かなり異なることに気付いてください。 たとえば、エージェントからの 実行フロー・ビューには、そのエージェントが接続されている 特定の JVM (Java virtual machine) の実行が表示されます。 対照的に、モニターからビューを選択すると、選択されたモニター下に プロファイル作成エージェントを持つすべての JVM の実行が表示されます。
  2. 各メソッドのストライプの長さに注意してください。ストライプが長いほど、実行時間が長いことを意味します。
  3. さらに詳細にメソッドを表示するには、メソッド統計ビューを 開き、メソッドを選択し、右マウス・ボタンをクリックしてから、 「メソッド呼び出しの表示 (Show Method Invocation)」をクリックします。
  4. メソッドの呼び出し側の実行時間を表示するには、 右マウス・ボタンをクリックしてから、 「メソッド呼び出しの表示 (Show Method Invocation)」を選択します。 このビューには、ラベル行と同じメソッドが表示されます。
  5. ローカル・ツールバーから、 「呼び出し側の表示 (Show Caller)呼び出し側ボタン・アイコン をクリックすると、選択されたメソッドの呼び出し側が ビューに表示されます。このボタンをクリックするごとに、 呼び出しシーケンスで 1 つ上のメソッドが表示されます。
  6. メソッドを選択します。 選択領域の縦の長さが、メソッドの基本時間を表します。 ビューの右側にある垂直の時間目盛りにより、このメソッドの実行時間を判別することができます。 状況表示行には、メソッドの累計時間が示されます。

実行時間を広いビューで表示したい場合は、以下のようにします。

  1. 実行フロー・ビューを開きます。プロファイル・モニター・ビューのモニターの ポップアップ・メニューから、「開く (Open With)」> 「実行フロー (Execution Flow)」の順に選択します。
  2. メソッド起動ビューと同様に、このビューの右方には垂直の時間目盛りがあります。 
  3. ズームイン (Zoom In)zoom in button icon ボタンを 使用してビューの特定のセクションを拡大し、調べたいメソッドを強調表示します。
  4. メソッド名 (またはその下の空白) をクリックして選択します。 強調表示された領域の縦の長さが、メソッドの基本時間を表します。 基本時間の値は、状況表示行に表示されます。
  5. ズームアウト (Zoom Out)」ボタン zoom out button icon を使用すると、 プログラム全体のより広い範囲を表示しながら、 メソッドの強調表示された領域を表示することができます (つまり、黄色い長方形の領域を表示することができます)。実行全体のモデルが表示されない場合でも、プログラム全体において、このメソッドが消費する時間を判別することができます。

関連概念
プロファイル作成ツールの概説
実行フロー・ビューとテーブル
統計ビュー

関連タスク
アプリケーションのプロファイルを作成する
Java プロセスを起動する/接続する
ガーベッジ・コレクションを検討する
パフォーマンスとメモリー使用量を分析する - 概要