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

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

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

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

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

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

使用するメトリック

解析すること

CPU 時間

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

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

コールサイトのタイプがオーバーヘッド + CPU 時間である場合、コールサイトのタイプが同期である CPU 時間として計算されたオーバーヘッドとスピン時間の合計を表します。

待機時間

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

待機カウント

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

スピン時間

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

タスク時間 (タスク)

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

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

プリエンプションまたは同期の理由にかかわりなく、異なる呼び出しスタック上のコンテキスト・スイッチによるソフトウェア・スレッドのインアクティブ時間の分布を示します。

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

プリエンプションまたは同期の理由にかかわりなく、異なる呼び出しスタック上のコンテキスト・スイッチの分布を示します。

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

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

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

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

インアクティブ時間

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

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

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

待機時間 (シグナル)

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

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

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

スピン時間 (シグナル)

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

関連情報