実行プロファイラ

実行プロファイラを使用すると、プログラムで最も負荷がかかるメソッドおよびスレッドを特定できます。

実行プロファイラは2つの領域に分割されています。左側にメイン・ウィンドウがあり、右側には詳細ウィンドウがあります。

後で参照するためにプロファイリング・セッションのデータを保存するには、表内で右クリックして次の保存オプションのいずれかを選択します。

「設定」ダイアログに直接移動してプロファイラ設定を再構成するには、メイン・ウィンドウの表内で右クリックして「設定」を選択します。表示される列に変更を指定した場合は、プロファイラに戻ると、プロファイラの表示に変更内容が反映されます。他の変更を行った場合は、新規のプロファイリング・セッションを開始するまで変更内容は反映されません。

メイン・ウィンドウ

メイン・ウィンドウの表には、少なくとも1つのサンプルで最もアクティブなスレッドのスタックにあったプロファイラ・クラス・セット内のメソッドが表示されます。

データを列内で昇順または降順にソートするには、列ヘッダーをクリックします。列を再編成するには、列をクリックして新しい位置にドラッグします。

表内に表示されたメソッドのソース・コードを表示するには、メソッドが表示されている表の行をダブルクリックするか、右クリックして「ソースの検索」を選択します。メインの表でメソッドを選択すると、そのメソッドの要約された情報が詳細ウィンドウの中央に表示されます。選択するメソッドによって表に表示される情報が変わります。

表の上部には、現在のプロファイリング・セッションを制御する6つのボタンと1つの出力フィールドがあります。

「再起動」ボタン
一時停止したプログラムを始めから再起動する場合にクリックします。
「再開」ボタン
一時停止したプログラムを再開する場合にクリックします。
「プログラムの停止」ボタン
実行中のプログラムを一時停止する場合にクリックします。一時停止中であることを示すイベント・ステータスが表示されます。
「スナップショット」ボタン
一時停止したプログラムのスナップショットを取得する場合にクリックします。スナップショットの取得中であることを示すイベント・ステータスが表示されます。
「消去」ボタン
メイン・ウィンドウに表示されたデータを消去する場合にクリックします。このボタンは、プログラムを一時停止および再開して、実行時に個別ブロック内で生成されたデータのみを表示する場合などに使用します。
「停止」ボタン
実行中のプログラムを停止する場合にクリックします。
表には、現在のプロファイリング・セッションで検討されるメソッドごとにデータが表示されます。
クラス
メソッドが含まれているクラスの完全修飾名。
メソッド
メソッドの名前。
シグネチャ
メソッドのシグネチャ。
ヒット率
このメソッドで直接費やされた合計時間の割合。別のメソッドをコールするために費やされた時間は含まれません。この列の合計は常に100%です。
時間
このメソッドで直接費やされた時間。サブメソッドをコールするために費やされた時間は含まれません。
スタック率
サブメソッドのコールなど、このメソッドで費やされた時間のグローバル割合。
スタック時間
その他のメソッドのコールなど、このメソッドで費やされたグローバル時間。

実行されたメソッド以外に、サンプリングされたスレッドおよび慣例により全スレッドのコール元となるルート・オブジェクトによって1行追加されます。ヒット率はスレッドで実行されたメソッドまたはスレッドの疑似メソッド行に対してカウントされるため、ルート・オブジェクトでは常に「スタック時間」が100%で、「ヒット率」が0%になります。

各サンプルが取得されるときに、プロファイラ・クラス・セットに属さないメソッドはすべてスタックから削除され、ヒット率は最上位に残るメソッドに対してカウントされるか、プロファイラ・クラス・セットに属するメソッドが1つもない場合には擬似スレッドのメソッドに対してカウントされます。

詳細ウィンドウ

詳細ウィンドウには、メイン・ウィンドウの表で選択されているメソッドの詳細が表示されます。上の画面(「呼出し元」表)には、メイン・ウィンドウの表で選択されているメソッドをコールするメソッドが表示され、下の画面(「呼出し」表)には、選択されているメソッドがコールするメソッドが表示されます。「呼出し元」表のメソッドをダブルクリックすると、メインの表でそのメソッドを見つけることができます。

呼出し元
この表には、左側のメイン・ウィンドウで現在選択されているメソッド(M)をコールするメソッドの一覧が表示されます。
クラス
Mをコールするメソッドが含まれているクラスの完全修飾名。
メソッド
Mをコールするメソッドの名前。
シグネチャ
Mをコールするメソッドのシグネチャ。
ヒット率
このメソッドがMをコールするために費やした時間の割合。定義では、この列の合計は100%になります。
時間
このメソッドがMをコールするために費やした時間。

2つの詳細な表に挟まれたウィンドウの中央部分には、メイン・ウィンドウで選択されているメソッドの情報がもう一度表示されるだけでなく、そのメソッド自体に費やされた時間が、実行時間に占める割合として表示されます。

全体の統計値
メインの表で選択されているメソッドに関する表のデータがもう一度表示されます。
呼出し
この表には、左側のメイン・ウィンドウで現在選択されているメソッド(M)によってコールされるメソッドの一覧が表示されます。
クラス
Mがコールするメソッドが含まれているクラスの完全修飾名。
メソッド
Mがコールするメソッドの名前。
シグネチャ
Mがコールするメソッドのシグネチャ。
ヒット率
Mがこのメソッドをコールするために費やした時間の割合。定義では、この列の合計および「呼出し元」コードの値は100%になります。
時間
Mがこのメソッドをコールするために費やした時間。

実行プロファイリングについて