スタックとハードウェア・イベントベース・サンプリング収集

同カテゴリーの次の記事

Storage Performance Snapshot クイックスタート (プレビュー機能)

この記事は、インテル® デベロッパー・ゾーンに公開されている、インテル® VTune™ Amplifier のオンラインヘルプの一部「Hardware Event-based Sampling Collection with Stacks」の日本語参考訳です。Windows* 用のヘルプではありますが、その他の OS 環境でも十分ご利用いただけます。また、構成は英語版のヘルプと同じ階層構造にしてあります。


関数の呼び出しスタックを解析して、パフォーマンス、並列処理、および電力消費の問題を特定するため、イベントベース・サンプリング・コレクターを設定できます。

マルチタスク・オペレーティング・システムは、すべてのソフトウェア・スレッドを時分割で実行します (スレッド実行のクアンタム)。インテル® VTune™ Amplifier のプロファイラーは、スレッドクアンタムの切り替えを識別することができ、スレッドクアンタムの配置に関連するすべての操作を監視します。

次の図はスレッドごとのクアンタム監視の概念を示します。

  • プロファイラーは、スレッドがプロセッサーにスケジュールされたとき、そして完了したときに (スレッドクアンタムの境界で) 制御を取得します。これによりプロファイラーは、スレッドがアクティブまたはインアクティブになったポイントまでのコールスタック収集に加えて、ハードウェア・パフォーマンス・イベントやタイムスタンプの正確な測定が可能になります。
  • プロファイラーは、スレッドがインアクティブになった理由を判断します: 明示的な同期要求 (上記の例のようにスレッド 0 が WaitForSingleObject 関数を呼び出した場合)、またはスレッドクアンタムの終了 (オペレーティング・システムのスケジューラーが現在のスレッドをほかのスレッドへ切り換えた場合) のいずれか。
  • スレッドがインアクティブである時間とその理由も区別されます。同期が原因のインアクティブ状態は待機時間と呼ばれ、プリエンプションが原因である場合はインアクティブ時間と呼ばれます。

スレッドがプロセッサー上でアクティブである間 (クアンタム期間内)、プロファイラーはイベントベース・サンプリングを使用します。プログラムロジックと関連するハードウェア・イベント、およびプログラムコードとそのほかの特性を再構成します。通常のイベントベース・サンプリングとは異なり、プロファイラーは各サンプリング割り込みの間も以下を収集します。

  • コールスタック情報
  • 分岐情報 (設定されている場合)
  • プロセッサーのタイムスタンプ

これらすべては、統計的にプログラムの実行ロジック (呼び出しと制御フローグラフ) を再構成し、スレッドのアクティビティーを時系列にトレースするとともに、ハードウェア利用とパフォーマンスに関連するすべての情報の収集を許可します。

注:

コールスタック解析を行うと、データ収集のオーバーヘッドが増えます。スタックサイズによるオーバーヘッドを最小化するため、カスタム・ハードウェア・イベントベース・サンプリング設定 (英語) の [Stack size (スタックサイズ)] オプションを使用するか、CLI で -stack-size オプションを指定して、スタックサイズを制限します。デフォルトでは、すべてのスタックが収集されます。このオプションを無効にすると、オーバーヘッドは軽減されますが、スタックデータは収集されなくなります。

上位トピック: 主要な概念

関連項目

EBS 解析のコールスタック (英語)
スタックデータの解釈 ハードウェア・イベントベース・サンプリング収集

コンパイラーの最適化に関する詳細は、最適化に関する注意事項を参照してください。

関連記事

  • ハードウェア・イベントベースのスタック・サンプリングでアプリケーションのパフォーマンスを解析ハードウェア・イベントベースのスタック・サンプリングでアプリケーションのパフォーマンスを解析 この記事は、インテル® デベロッパー・ゾーンに公開されている、インテル® VTune™ Amplifier のオンラインヘルプの一部「Analyzing Application Performance with Hardware Event-based Stack Sampling」の日本語参考訳です。Windows* […]
  • オプションの説明と一般的な規則オプションの説明と一般的な規則 この記事は、インテル® デベロッパー・ゾーンに公開されている、インテル® VTune™ Amplifier のオンラインヘルプの一部「Option Descriptions and General Rule」の日本語参考訳です。Windows* 用のヘルプではありますが、その他の OS […]
  • ターゲットのビルド この記事は、インテル® デベロッパー・ゾーンに公開されている、インテル® VTune™ Amplifier のオンラインヘルプの一部「Building a Target」の日本語参考訳です。Windows* 用のヘルプではありますが、その他の OS […]
  • ハードウェア・イベントベース・サンプリング収集ハードウェア・イベントベース・サンプリング収集 この記事は、インテル® デベロッパー・ゾーンに公開されている、インテル® VTune™ Amplifier のオンラインヘルプの一部「Hardware Event-based Sampling Collection」の日本語参考訳です。Windows* 用のヘルプではありますが、その他の OS […]
  • FreeBSD* サポートFreeBSD* サポート この記事は、インテル® デベロッパー・ゾーンに公開されている、インテル® VTune™ Amplifier のオンラインヘルプの一部「FreeBSD* Support」の日本語参考訳です。Windows* 用のヘルプではありますが、その他の OS […]