関数の詳細ビュー

[関数の詳細ビュー] ウィンドウには、次の情報が表示されます。

  • 選択した関数とそれを実行した呼び出し元関数の間の関係、および選択した関数とそれが呼び出している関数の間の関係を表示する [コスト配分] 棒グラフ。

  • 指定した関数のプロファイル データの概要を表示する [関数のパフォーマンスの詳細] 表。

  • コードが使用可能な場合に関数コードを表示する [関数コード ビュー] ウィンドウ。

    [関数コード ビュー] ウィンドウは独立したウィンドウです。 既定では、2 つのウィンドウは上下に分割され、[関数コード ビュー] ウィンドウはフレームの下部に配置されます。

  • 2 つのウィンドウを左右に分割するには、ツール バーの [画面を左右に分割] をクリックします。

  • ウィンドウの相対サイズを変更するには、フレーム間の網掛けされた境界線をクリックし、その境界線を別の位置にドラッグします。

[コスト配分] 棒グラフ

パフォーマンス メトリック

[パフォーマンス メトリック] ドロップダウン リストで、ビューに表示する値を指定できます。 使用できる値は、プロファイル データ ファイルに使用されたプロファイル方法に依存します。 かっこで囲まれた名前は、[関数のパフォーマンスの詳細] 表の行の名前です。

横棒グラフ

関数の呼び出し

[呼び出す関数] バーには、選択した関数を呼び出した関数が表示されます。 呼び出し元の関数を含むブロックのサイズは、選択した関数のパフォーマンス メトリックの合計値に対する、呼び出し元の関数の貢献度に比例します。

呼び出し元の関数の名前をクリックすると、その関数がビューで選択されます。

  • 呼び出し元の関数が多すぎて一覧表示できない場合、貢献度の小さい関数は [その他] ブロックにまとめられます。 選択した関数の呼び出し元の関数と呼び出し先の関数をすべて [呼び出し元/呼び出し先ビュー] のウィンドウに表示するには、[その他] をクリックします。 詳細については、「[呼び出し元/呼び出し先] ビュー」を参照してください。

  • 呼び出し元の関数が存在しない場合、または関数がスレッドもしくはプロセスのエントリ関数である場合、[スタックの一番上] ブロックが表示されます。

    選択した関数

    選択した関数の棒には、選択した関数のパフォーマンス メトリックの合計に対する、選択した関数内で呼び出された関数とコードの貢献度が表示されます。 呼び出された関数または関数本体を含むブロックのサイズは、選択した関数のパフォーマンス メトリックの合計値に対する貢献度に比例します。

    呼び出された関数の名前をクリックすると、その関数がビューで選択されます。

  • [合計] の値は、選択した関数のパフォーマンス メトリックです。

  • [関数本体] ブロックは、関数の本体内でコードを直接実行中に発生したパフォーマンス メトリックの合計値を表します。

  • 選択した関数から呼び出された関数は、ブロックに一覧表示されます。 選択した関数のブロックのサイズは、呼び出された関数内で発生した、選択した関数のパフォーマンス メトリックの合計値を表します。

  • 呼び出し元の関数が多すぎて一覧表示できない場合、貢献度の小さい関数は [その他] ブロックにまとめられます。 選択した関数の呼び出し元の関数と呼び出し先の関数をすべて [呼び出し元/呼び出し先ビュー] のウィンドウに表示するには、[その他] をクリックします。 詳細については、「[呼び出し元/呼び出し先] ビュー」を参照してください。

  • 呼び出された関数がない場合、[スタックの一番下] ブロックが表示されます。

関数のパフォーマンスの詳細

[関数のパフォーマンスの詳細] 表には、選択した関数のパフォーマンス メトリックの概要データが示されます。 値と割合の両方が表示されます。 グラフと詳細表に表示するプロファイル データは、[パフォーマンス メトリック] ボックスで指定します。

Column 説明
[排他] - 関数本体の実行で発生したパフォーマンス メトリックの合計。
[呼び出し内] - 選択した関数から呼び出された関数内で発生したパフォーマンス メトリックの合計。
[包括の合計] - [排他] 値と [呼び出し内] 値の合計。

関数コード ビュー

[関数コード ビュー] ウィンドウには、ソース コードが使用可能な場合、ソース コードのリストが表示されます。 他の関数を呼び出すソース コード行の横の網掛けされた列には、呼び出された関数のパフォーマンス メトリック値が示されます。 ソース コードを編集するには、ソース コード ファイルへのリンクをクリックします。

[コスト配分] 棒グラフの値

サンプリング

サンプリング メソッドを使用して収集されたプロファイル データの [パフォーマンス メトリック] ボックス内の値について、次の表で説明します。

[サンプル数 (子を含む)](収集されたサンプル) - 呼び出し元の関数については、選択した関数がこの呼び出し元の関数から呼び出されたときに収集されたサンプルの数。
- 関数本体については、選択した関数が自分のコードを実行しているときに収集されたサンプルの数。
- 呼び出された関数については、選択した関数からの呼び出しによって呼び出された関数の実行中に収集されたサンプルの数。

インストルメンテーション

インストルメンテーション メソッドを使用して収集されたプロファイル データの [パフォーマンス メトリック] ボックス内の値について、次の表で説明します。

[経過時間 (子を含む)](経過時間) 経過時間には、オペレーティング システムの呼び出し (コンテキストの切り替え、入出力操作など) で費やされた時間が含まれます。

- 呼び出し元の関数については、その関数によって呼び出された、選択した関数のインスタンスの実行に費やされた経過時間の合計。 選択した関数から呼び出された関数で費やされた時間が含まれます。
- 関数本体については、選択した関数のコードの実行に費やされた経過時間の総合計。 呼び出された関数で費やされた時間は含まれません。
- 呼び出された関数については、選択した関数によって呼び出された関数のインスタンスの実行に費やされた合計時間。 合計には、関数が呼び出した関数で費やされた時間が含まれます。 選択した関数から呼び出された関数で費やされた時間が含まれます。
[アプリケーション時間 (子を含む)](アプリケーション時間) アプリケーション時間には、オペレーティング システムの呼び出し (コンテキストの切り替え、入出力操作など) で費やされた時間は含まれません。

- 呼び出し元の関数については、その関数によって呼び出された、選択した関数のインスタンスの実行に費やされたアプリケーション時間の合計。 選択した関数から呼び出された関数で費やされた時間が含まれます。
- 関数本体については、選択した関数のコードの実行に費やされたアプリケーション時間の総合計。 呼び出された関数で費やされた時間は含まれません。
- 呼び出された関数については、選択した関数によって呼び出された関数のインスタンスの実行に費やされたアプリケーション時間の合計。 合計には、関数が呼び出した関数で費やされた時間が含まれます。

.NET メモリ

.NET メモリ プロファイル方法を使用して収集されたプロファイル データの [パフォーマンス メトリック] ボックス内の値について、次の表で説明します。

[割り当て数 (子を含む)](割り当て) - 呼び出し元の関数については、関数が呼び出した、選択した関数のインスタンスによって割り当てられたオブジェクトの数。 この数には、選択した関数が呼び出した関数によって割り当てられたオブジェクトが含まれます。
- 関数本体については、選択した関数が自分のコードを実行しているときにその関数によって割り当てられたオブジェクトの数。 選択した関数によって呼び出された関数で割り当てられたオブジェクトは含まれません。
- 呼び出された関数については、選択した関数によって呼び出された関数のインスタンスによって割り当てられたオブジェクトの数。 この数には、関数が呼び出した関数によって割り当てられたオブジェクトが含まれます。
[割り当てバイト数 (子を含む)](バイト) - 呼び出し元の関数については、関数が呼び出した、選択した関数のインスタンスによって割り当てられたバイト数。 この数には、選択した関数が呼び出した関数によって割り当てられたバイトが含まれます。
- 関数本体については、選択した関数が自分のコードを実行しているときにその関数によって割り当てられたバイト数の合計。 選択した関数によって呼び出された関数で割り当てられたバイトは含まれません。
- 呼び出された関数については、選択した関数によって呼び出された関数のインスタンスによって割り当てられたバイト数。 この数には、関数が呼び出した関数によって割り当てられたバイトが含まれます。

同時実行

同時実行メソッドを使用して収集されたプロファイル データの [パフォーマンス メトリック] ボックス内の値について、次の表で説明します。

[包括競合](競合) - 呼び出し元の関数については、関数が呼び出した、選択した関数のインスタンス内で発生したリソース競合イベントの数。 この数には、選択した関数が呼び出した関数内の競合イベントが含まれます。
- 関数本体については、関数が自分のコードを実行しているときに発生した競合イベントの合計数。 選択した関数によって呼び出された関数で発生する競合は含まれません。
- 呼び出された関数については、選択した関数によって呼び出された関数のインスタンス内で発生した競合イベントの数。 この数には、関数が呼び出した関数内で発生した競合イベントが含まれます。
[包括ブロック時間](ブロック時間) - 呼び出し元の関数については、関数が呼び出した、選択した関数のインスタンスに対するリソース競合イベントで費やされた時間。 この時間には、選択した関数が呼び出した関数のブロック時間が含まれます。
- 関数本体については、関数が自分のコードを実行しているときに発生した競合イベントで費やされた合計時間。 選択した関数が呼び出した関数で発生する競合は含まれません。
- 呼び出された関数については、選択した関数が呼び出した関数のインスタンスに対するリソース競合イベントで費やされた時間。 この時間には、関数が呼び出した関数内で発生したブロック時間が含まれます。