インテル® VTune™ Amplifier 2018 ヘルプ
ユーザーとシステム関数向けのコールスタックを表示するためインテル® VTune™ Amplifier のビューを管理し、パフォーマンス・メトリックでそれぞれのスタックの影響を推測します。
インテル® VTune™ Amplifier は、[Call Stack (コールスタック)] ペイン、[Bottom-up (ボトムアップ)] ペイン、[Top-down Tree (トップダウン・ツリー)] および [Caller/Callee (呼び出し元/呼び出し先)] ペインでコールスタックに関する情報を提供します。次のオプションにより、異なるビューでスタックを管理および解析できます。
スタック・レイアウト・ツールバー・ボタン / を使用して、グリッド ([Bottom-up] や [Top-down Tree] ペイン) のスタック表示形式を管理します。
選択されたレイアウトに応じてボタンは動的に変わります。例えば、チェーンレイアウトが選択されると、ボタンはツリーレイアウトを選択するように表示が変わります。
チェーンレイアウト は、ボトムアップ表示に適しています。
また、ツリーレイアウト は、トップダウン表示に最適です。
[Top-down Tree] ペインのチェーンレイアウトは、分岐がなくかつデータ列中のすべての値が同じ親と子である場合にのみ選択できます。
選択したプログラムユニットのスタックを表示し、スタックの関連を予測して、最もパフォーマンス・クリティカルなスタックを特定するには、[Call Stack] ペインで [next (次へ)]/[previous (戻る)] の矢印をクリックします。
[Bottom-up] または [Top-down Tree] ペインで、Ctrl キーを押しながら複数のスタックまたはプログラムユニットを選択します。[Call Stack] ペインに、選択したスタックのうち最も割合の高いものが表示されます (割合は、選択したすべてのスタックの合計に基づいて計算されます)。選択した項目に関連するすべてのスタックがタブに追加され、[next/previous] の矢印を使用してスタック間を移動できます。
[Bottom-up] ペインの各スタックは、[Call Stack] ペインのコールスタックに対応していますが、[Bottom-up] グリッドのツリー分岐の数は必ずしも [Call Stack] ペインのスタック数と一致しないことに注意してください。[Bottom-up] ペインのスタックは関数ベースですが、[Call Stack] ペインのスタックは行番号ベースなので、それぞれのビューに表示されるスタックの数は異なることがあります。
例えば以下のスクリーンショットでは、[Bottom-up] ペインには func_1 関数の 2 つのスタックが表示され、[Call Stack] ペインには 8 つのスタックが表示されています。
[Call Stack] ペインでナビゲーション・ボタンを使用してスタックを切り替えると、main 関数から func_1 関数が 2 回呼び出されているのが分かります。1 回目は 158 行目 ([Call Stack] ペインの最初のスタック) で、2 回目は 162 行目 ([Call Stack] ペインの 3 つ目のスタック) です。 [Bottom-up] ペインでは、この 3 つのスタックが 1 つにまとめられ、CPU 時間の合計が表示されます。例えば、func_1 関数と 7 つの呼び出し位置の最初のスタックの CPU 時間は、次のように求められます。 13.945s = 2.002s + 2.001s + 1.993s + 1.992s +1.990s +1.984s + 1.983s |
[Call Stack] ペインのドロップダウン・メニューを使用して、選択したプログラムユニットのスタックタイプを選びます。
例えば、ロックと待機の解析結果で同期オブジェクトを選択した場合は、[Call Stack] ペインにそのオブジェクトの作成時、シグナル時、待機時のスタックを表示するように設定できます。
[Call Stack] ペインのスタックとグリッドにシステム関数を表示するかどうかは、フィルターツールバーの [Call Stack Mode (コールスタック・モード)] メニューで設定します。
[Call Stack] ペインの行をダブルクリックするか、ハイパーリンクで示される関数名をクリックすると、ソースファイルは選択された行の項目を生成したコードの [Source (ソース)]/[Assembly (アセンブリー)] ウィンドウに開きます。
例えば、ロックと待機の解析結果では、[Wait Time (Sync Object Creation) (待機時間 (同期オブジェクトの作成))] スタックの一番上の項目をダブルクリックすると、関連するソースファイルが開き、対応する同期オブジェクトを作成したソース行が表示されます。
ソースコードが見つからない場合は、手動で探すか、このプログラムユニットの [Assembly] ペインを開くことができます。
システム関数を選択すると、利用可能な場合は [Source]/[Assembly] ウィンドウにそのソースファイルが表示されます。そうでない場合は、そのシステム関数のバイナリーファイルの逆アセンブリーが表示されます。