インテル® VTune™ プロファイラーは、解析結果を比較して、以下のウィンドウの個別の結果タブ <結果 1>-<結果 2> に差分を表示します。
[サマリー] ウィンドウは、実行した解析の上位の差分を示します。
[ボトムアップ] ウィンドウには、関数と呼び出し元の差分がメトリックごとに表示されます。
[トップダウン・ツリー] ウィンドウには、関数と呼び出し先の差分がメトリックごとに表示されます。
[呼び出し元/呼び出し先] ウィンドウには、選択した関数と呼び出し元/呼び出し先の差分がメトリックごとに表示されます。
デフォルトで、インテル® VTune™ プロファイラーは関数インスタンスに基づいて、[コールスタック] の粒度でグループ化された関数の比較結果を表示します。次のような場合、ソース関数スタックのグループ化に切り替えて、より正確な比較結果を表示できます。
ソースを若干変更してコードを再コンパイルした場合。
コンパイルオプションを変更して再コンパイルした場合。
異なるインテル® マイクロアーキテクチャー向けにコンパイルして収集した結果を比較する場合。
例えば、my_f 関数を含むバイナリーは、新たに関数 my_f1 とこの関数の新しい呼び出しを追加して更新されています。そのため、my_f のアドレスは変更されています。デフォルトの [コールスタック] グループ化を使用して修正前後の結果を比較すると、インテル® VTune™ プロファイラーは異なるアドレスを持つ同じ関数を異なるインスタンスとして認識するため、それらを比較しません。
ソース関数スタックでデータを集約すると、インテル® VTune™ プロファイラーは開始アドレスを無視してソース・ファイル・オブジェクトごとに関数を比較します。
バー形式を選択して [ボトムアップ] または [トップダウン・ツリー] ウィンドウにパフォーマンス・データを表示すると、インテル® VTune™ プロファイラーはバーのサイズを次のように計算します。
結果データカラム |
差分カラム |
---|---|
cell_data_value/absolute_max_value_in_result_column |
cell_data_value/max(absolute_max_value_in__1st_result_column, absolute_max_value_in_corresponding_2nd_result_column) |
例: バーサイズの計算
次の表は、インテル® VTune™ プロファイラーが絶対最大 CPU 時間値とカラムごとのパフォーマンス・データを基にして、比較モードでバーサイズを計算する方法を示します。
CPU 時間:r001 |
CPU 時間:r002 |
CPU 時間:差分 |
|
---|---|---|---|
絶対最大値 (インテル® VTune™ プロファイラーにより内部で計算され、グリッドには表示されません) |
10s |
20s |
20s |
パフォーマンス・データ |
1s |
3s |
2s |
バーのサイズ |
1s/最大 (10s,20s) |
3s/最大 (10s,20s) |
2s/最大 (10s,20s) |