コールスタック上のメトリック分布

パフォーマンス解析結果を解釈する際に、グリッド内のオブジェクトを選択して、[コールスタック] ペインのドロップダウン・メニューでパフォーマンス・メトリックを選択すると、次のことができます。

  • 選択したスタックに関連するスタックを表示します。

  • 選択したオブジェクトのスタックごとに、選択したパフォーマンス・メトリックの分布を解析します。例えば、CPU 時間メトリックが選択されていると、関連性バーには選択した関数の実行に費やされた合計 CPU 時間に対する選択したスタックの実行に費やされた CPU 時間の割合を示します。

また、[タイムライン] ペインでオブジェクトを選択することもできます。この場合、[コールスタック] ペインには、同じスタックを使用するすべてのオブジェクトのメトリックデータが表示されます。

解析設定に応じて、次のメトリックが利用できます。

使用するメトリック

解析すること

CPU 時間

CPU がすべてのコアでアプリケーションをアクティブに実行している時間。

オーバーヘッドとスピン時間

呼び出しサイトのタイプがオーバーヘッドの CPU時間 + 呼び出しサイトのタイプが同期の CPU 時間として計算される、オーバーヘッドとスピン時間の合計。

待機時間

スレッドが別のスレッドからのシグナルを待機する時間の分布。例えば、別のスレッドが保持するロックを必要とするスレッドが、その解放を待機する場合です。

待機カウント

システム待機 API が呼び出された回数の分布。

スピン時間

CPU がビジーであった待機時間の分布。

タスク時間 (タスク)

タスク内で消費された時間。

コンテキスト・スイッチ時間

プリエンプションか、同期かにかかわりなく、異なるコールスタック上のコンテキスト・スイッチによるソフトウェア・スレッドのインアクティブ時間の分布。

コンテキスト・スイッチ・カウント

プリエンプションか、同期かにかかわりなく、異なるコールスタック上のコンテキスト・スイッチ回数の分布を示します。

プリエンプション・コンテキスト・スイッチ・カウント

OS のタスク・スケジューラーが、優先順位の高い別のスレッドを実行するため、スレッドをプロセッサーから切り離すプリエンプションによって発生するコンテキスト・スイッチ回数の分布。

同期コンテキスト・スイッチ・カウント

スレッド同期 API や I/O API を呼び出したことにより、スレッドがオフにスイッチされたコンテキスト・スイッチ回数の分布。

インアクティブ時間

スレッドの実行が延期されたままになっている時間の分布。

リタイアした命令数クロックティックLLC ミスなどのイベントメトリック

ハードウェア・イベントの分布。このメトリックを使用して、ターゲットで収集された合計イベント数への貢献度が最も高いスタックを特定します。

待機時間 (シグナル)

スレッドが待機していたロックを解放するシグナルスレッドのコールスタックによる待機時間の分布。このメトリックを使用して、シグナルスレッドのアルゴリズムを最適化するため、待機時間が長いシグナルスタックを識別します。

待機カウント (シグナル)

スレッドが待機していたロックを解放するシグナルスレッドのコールスタックによる待機カウントの分布。このメトリックを使用して待機回数が多いシグナルスタックを識別します。

スピン時間 (シグナル)

スレッドが待機していたロックを解放するシグナルスレッドのコールスタックによるスピン時間の分布。このメトリックを使用して、CPU がビジーである間の待機が長いシグナルスタックを識別します。

待機時間 (同期オブジェクト生成)

各種オブジェクト生成による待機時間の分布。例えば、グリッド内で選択されている行には、プログラムのさまざまな場所で生成されたオブジェクトに対する待機操作が含まれている可能性があります。

待機カウント (同期オブジェクト生成)

各種オブジェクトの生成による待機カウントの分布。

スピン時間 (同期オブジェクト生成)

各種オブジェクトの生成によるスピン時間の分布。

ロード (メモリー割り当て)

メモリー・オブジェクトを割り当てるスタック内の合計ロード数の分布。

実行 (計算タスク (GPU))

計算タスクを実行するのにスタックで費やされた時間の分布。このメトリックを使用して、最もコストがかかるオフロード操作を特定します。

ホストからデバイスへの転送 (計算タスク (GPU))

ホストからデバイスへデータを転送するために費やされた時間の分布。このメトリックを使用して、最もコストがかかるオフロード操作を特定します。

デバイスからホストへの転送 (計算タスク (GPU))

デバイスからホストへデータを転送するために費やされた時間の分布。このメトリックを使用して、最もコストがかかるオフロード操作を特定します。

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

関連情報