ペイン: コールスタック

これらのコレクションでは、[コールスタック] ペインが利用できます。

[コールスタック] ペインを使用して、グリッドで選択したプログラム単位を呼び出すシーケンス (スタック) を特定します。異なるスレッドからのコールスタックはまとめられて、スレッド別の呼び出し情報ではなく、関数のすべてのコールスタックが表示されます。スレッド解析の結果の [コールスタック] ペインに表示されるデータの使用法については、次の表を参照してください。

[コールスタック] ペイン

スタックメトリックのドロップダウン・メニュー: パフォーマンス・メトリックを選択して、選択したオブジェクトのスタック全体にわたるメトリックの分布を調べます。例えば、スレッド化効率ビューポイントでは、待機時間メトリックが事前選択されています。GPU オフロード・ビューポイントでは、実行メトリックが事前に選択されています。

[ナビゲーション] バー: 選択されたプログラム単位のスタックを表示するには、 [次へ]/ [戻る] 矢印をクリックします。スタックタイプはメトリックごとに分類され、選択したビューポイントによって異なります。例えば、[スレッド化効率] ビューポイントでは、[待機時間] スタックタイプは、グリッドで選択したオブジェクトが関連するアプリケーション待機時間のコールスタックが表示されます。

複数のスタックが選択したプログラム単位に関連する場合、[コールスタック] ペインにはメトリックと最も関連性の高いスタック、つまり最もホットなパスが最初のスタックとして表示されます。そのほかのスタックを表示するには、ナビゲーション矢印をクリックします。

  • 複数のスタックが同じ関数の異なるコード行で使用される場合、[ボトムアップ] グリッドに表示されるボトムアップ・ツリーではそれらのスタックを 1 つに統合します。しかし、[コールスタック] ペインではスタックは別々に表示されます。

  • 選択したスタックタイプが選択したプログラム単位に適用できない場合、インテル® VTune™ プロファイラーは代わりにスタックタイプのリストから適用可能なスタックタイプを自動的に使用します。

[関連性] バー: 選択したプログラム単位の全体的なメトリックデータに対する、表示されているスタックの関連性を解析します。結果ウィンドウで 1 つのスタックを選択すると、関連性バーは 100% を示します。複数のプログラム単位が選択されると、関連するすべてのスタックが計算に加えられます。

上記の例では、[ボトムアップ] グリッドで選択された関数に 3 つの待機時間スタックがあり、合計待機時間は 23.718 秒であることが分かります。最初のスタックは、全体の 23.718 秒の 97.9% (23.230 秒) を占めています。[ボトムアップ] グリッドでは、3 つのスタックは同じ関数の異なるコードに関連するため 1 つにまとめられます。

[グリッド] や [タイムライン] ペインで選択したプログラム単位のコールスタック: [ナビゲーション] バーで選択したスタックメトリックに応じて、選択した関数の呼び出しシーケンスを解析します。スタック内のそれぞれの行は、上の行にある関数呼び出し (利用可能であれば、呼び出しサイトの RVA と行番号を付けて) を表します。[フィルター] ツールバーの [コールスタック・モード] が、[ユーザー関数のみ] に設定されている場合、システム関数はスタックの下部に表示されます。[ユーザー/システム関数] に設定すると、システム関数は呼び出しシーケンスに従って正しい場所に表示されます。

ハイパーリンクをクリックするか、スタック内の関数をダブルクリックすると、この関数が呼び出されたソースコードの場所が開きます。

スタックに [不明なフレーム] 識別子が示される場合、インテル® VTune™ プロファイラーはシステムまたはアプリケーション・モジュールのシンボルファイルを検出できなかったことを意味します。詳細は、「問題: 不明なフレーム」を参照してください。

 

コンテキスト・メニュー: [コールスタック] ペインのコールスタックの表示を管理します (すべてのスタックに適用可能)。右クリックしてオプションを選択します。例えば、関数を 2 行で表示するには [1 行モードで表示] をオフにします。

2 つの解析結果を比較する場合、[コールスタック] ペインにはコールスタックが表示されません。

関連情報