リソース集中メソッドの識別
リソース集中メソッドは、プログラムの実行パフォーマンス全体に影響します。「実行フロー」ビューおよび「メソッド呼び出し」ビュー を使用すると、最適化の候補となりうるこれらのメソッドを簡単に識別することができます。
前提条件:
以下のいずれかの文が該当する場合、メソッドは最適化の候補になります。
- メソッドが必要以上に頻繁に呼び出されている。呼び出し回数を減らす、あるいは
頻繁に使用されるメソッドに若干の改良を加えることで、パフォーマンスが改善される可能性があります。
- メソッドの実行時間が長い。最も実行時間の長いクラスを識別し、
スタックで長時間を消費するこれらのメソッドを最適化することで、パフォーマンスが改善される可能性があります。
この場合のメソッドは、実行中ではない場合もありますが、代わりに
ソートや代行などのタスクのために別のメソッドを呼び出している可能性があります。
呼び出し頻度の高いメソッドの特定
呼び出し頻度の高いメソッドを特定するには、以下のようにします。
- 「プロファイル・モニター」ビューで、モニターまたはエージェントのいずれかを選択します。
- 右クリックして、「アプリケーションから開く」>「実行フロー」と選択します。「実行フロー」ビューが開きます。
- 「ズームイン」ボタン
をクリックして、メソッド呼び出しのシーケンスを拡大します。
- 右クリックして、「すべての繰り返しを検出」を選択します。
繰り返されるパターンが存在する場所には、X が示されます。
- これらのエリアをズームインして、繰り返されるパターンと、メソッドの繰り返し回数を調べます。
実行時間が長いメソッドの特定
実行時間が長いメソッドを特定するには、以下のようにします。
- 「実行フロー」ビューで、各メソッドのストライプの長さを調べます。ストライプが長いほど、
実行時間は長くなります。
- メソッドの詳細を調べるには、メソッドを選択して「メソッド統計」ビューを開き、
右クリックして、「メソッド呼び出しの表示」を選択します。「メソッド統計」ビューが開きます。
- 「メソッド統計」ビューで、メソッドの呼び出し元の実行時間を調べるには、
右クリックしてから「メソッド呼び出しの表示」を選択します。
このビューでは、同一のメソッドが 1 つのラベル付き行として表現されます。
- ローカル・ツールバーから、「呼び出し元の表示」
をクリックして、ビュー内で選択したメソッドの呼び出し元を表示します。
このボタンをクリックするごとに、呼び出しシーケンス内で 1 つ上位のメソッドが表示されます。
- メソッドを選択します。選択エリアの垂直方向の長さは、そのメソッドの
基本時間を表します。ビューの右端にある垂直方向の時間目盛りを調べることで、
このメソッドの実行時間を判別できます。
状況表示行では、このメソッドの累積時間を参照できます。
プログラム実行のビューの拡大
実行時間のビューを拡大する手順は、以下のとおりです。
- 「プロファイル・モニター」ビュー内のモニターのポップアップ・メニューから、
「アプリケーションから開く」>「実行フロー」と選択して、「実行フロー」ビューを開きます。
- このビューでは、「メソッド呼び出し」ビュー同様に、右側に垂直方向の時間目盛りがあります。
- 「ズームイン」
ボタン
を使用して、ビュー内の特定のセクションを拡大し、調べたいメソッドを強調表示します。
- メソッド名 (またはその下の空白) をクリックして選択します。強調表示されたエリアの縦の長さは、そのメソッドの基本時間を表します。
基本時間の正確な値は状況表示行に表示されます。
- 「ズームアウト」ボタン
を使用して、
メソッドの強調表示されたエリアを表示可能にしたままの状態で (つまり、黄色い長方形のエリアが
表示されたままの状態で)、プログラム全体のより大きな部分を表示することができます。
実行が完全に表示されていない場合であっても、プログラム全体に関連して
このメソッドが消費する時間を判別することができます。
関連概念
プロファイル・ツールの概説
「実行フロー」ビューおよびテーブル
「統計」ビュー
関連タスク
アプリケーションのプロファイル作成
Java プロセスの起動または接続
ガーベッジ・コレクションの学習
(C) Copyright IBM Corporation 2000, 2005. All Rights Reserved.