レポートの参照方法
パフォーマンス分析を行うことは、前述の通り非常に簡単です。むしろ問題なのはその後の結果から何をどのように見ればよいか? ではないかと思います。ここからは、簡単に実行した結果からどのような情報を得ることができるのかについて説明していきます。
概要ビュー
パフォーマンス分析終了後に最初に表示されるのが[概要]ビューです。図9がこれになります。概要ビューにはこのレポートで参照可能なさまざまなデータの全体像を一括で把握するような状態で情報が表示されています。このビューを利用するだけでも問題となっているポイントを発見できることもあります。より詳細なデータを表示するには、概要ビューに表示されている関数やモジュールの名前を右クリックし、表示されたメニューから目的のものを選択することで対象のビューに移動することができます。
なお、今回の単純な実行では「包括サンプル関数のトップ」と「排他サンプル関数のトップ」という二つの情報が表示されていますが、これらを含めプロファイル方法や設定方法によって概要ビューには以下のデータが表示されます。
種類 | 説明 |
包括サンプル関数のトップ | サンプルデータが取得されたときに関数(またはそれを含むDLL)がスタック上にあったことを示すデータをサンプル数が多い順番で表示されます。サンプリング方式でプロファイルを行った場合に表示されます。 |
排他サンプル関数のトップ | サンプルデータが取得されたときに関数(またはそれを含むDLL)が実行中だったことを示すデータをサンプル数が多い順番で表示されます。サンプリング方式でプロファイルを行った場合に表示されます。 |
最も多くのメモリを割り当てている関数 | 最大バイト数を割り当てている関数の上位数個を表示します。.NETメモリプロファイリング割り当てが有効な場合にのみ表示されます。 |
最も多くのメモリを割り当てられた型 | 最大バイト数を割り当てている型(クラス)の上位数個を表示します。.NETメモリプロファイリング割り当てが有効な場合にのみ表示されます。 |
最も多くのインスタンスを伴う型 | インスタンスの数が多い型(クラス)の上位数個を表示します。.NETメモリプロファイリング割り当てが有効な場合にのみ表示されます。 |
一番呼び出された関数 | 呼び出された関数と呼び出し数の合計、全体に対する割合が呼び出しの多い順に表示されます。インストルメンテーション方式でプロファイルを行った場合に表示されます。 |
個別作業が一番多い関数 | 実行時間の長かった関数が実行時間の長い順に表示されます。このデータでは他の関数の実行時間およびシステムコードの実行時間は除外されます。インストルメンテーション方式でプロファイルを行った場合に表示されます。 |
時間が一番かかった関数 | 実行時間の長かった関数が実行時間の長い順に表示されます。このデータでは他の関数の実行時間およびシステムコードの実行時間を含みます。インストルメンテーション方式でプロファイルを行った場合に表示されます。 |
関数ビュー
概要ビューで関数を右クリックして表示されるメニューなどからこのビューを表示することができます。関数ビューでは、概要ビューの包括サンプル関数、排他サンプル関数として表示されていたデータの詳細を確認することができます。関数ビューは初回表示時には、プロファイリング中に呼び出された関数の一覧がモジュール別にグループ化されて表示されます。モジュール別にグループ化された表示ではなく、関数一覧を表示するにはビュー内の適当な場所で右クリックして[モジュールでグループ化]の選択を解除します(図10)。一覧表示に切り替えると図11のように表示されます。
また関数ビューでは標準で表示される列以外にもさまざまな列を追加(または削除)して表示させることができます。列の追加や削除を行うには、ビュー内の適当な場所で右クリックして、表示されたメニューから[列の追加および削除]を選択します。
列の追加と削除から選択可能な一覧はMSDNライブラリの関数ビューの詳細を参照してください。しかし、実際にはここに説明されているすべての列が選択可能にはならず、対象のパフォーマンス分析の中で選択可能な列のみが表示されます。また列からは行番号やソースファイル名なども選択可能ですがpdbファイルがないと正しいデータが表示されないので注意してください。