アプリケーション実行のプロファイリング時に、インテル(R) VTune(TM) Amplifier XE は、アプリケーションによるプロセッサーの利用状況を調べます。ある時点で、実行中 (ただし、ブロック中ではないもの) または実行可能なスレッドはアクティブであると見なされます。ある時点の実行中のスレッド数から、アプリケーションの並列化レベルとプロセッサー・リソースの利用状況が分かります。インテル(R) VTune(TM) Amplifier XE は、Poor (低)、OK (許容範囲)、Ideal (理想)、Over (高) の 4 つのタイプの使用率を識別します。
ユーザーモード・サンプリング/トレース・コレクターは、プロセスに割り込み、すべてのアクティブな命令アドレスのサンプルを収集し、各サンプルで呼び出しシーケンスを再現します。サンプリング結果の命令ポインター (IP) と呼び出しシーケンス (スタック) はデータ収集ファイルに保存されます。そして、統計的に収集された IP サンプルと呼び出しシーケンスを基に、ビューアーにコールグラフや最も時間のかかるパスが表示されます。このデータは、統計的に重要なコード領域の制御フローを理解するのに役立ちます。
コレクターは OS のデバッグメカニズムを使用してプロセスにアタッチし、サンプリング・ドライバーは PMT カウンターのオーバーフローから各割り込みのシングルステップを生成します。コレクターは、そのシングルステップのデバッグ例外をキャッチして、現在アクティブなスレッドのスタックを巻き戻します。
ユーザーモード・サンプリング/トレース・コレクターのオーバーヘッドの平均は、デフォルトのサンプリング間隔 10ms で 5% です。
インテル(R) VTune(TM) Amplifier XE は、ユーザーモード・サンプリング/トレース・コレクターを使用して、次の解析タイプのデータを収集します。
ユーザーモード・サンプリング/トレース収集を使用したカスタム解析タイプを作成することもできます。
データ収集時に、インテル(R) VTune(TM) Amplifier XE は、設定されたサンプリング間隔につきスタックを 1 つだけ解析します。つまり、スレッド実行中に 10 ミリ秒ごと (デフォルトのサンプリング間隔の場合) にスタックを巻き戻します。ただし、パフォーマンス上の理由から、スタックの巻き戻しがスキップ/エミュレートされることがあります。その場合、ファイナライズ中に収集したデータを処理する際に、インテル(R) VTune(TM) Amplifier XE はスタックのないイベントでは、履歴から一致するスタックを検出しようとします。
このアプローチにより、スタックの巻き戻しオーバーヘッドは減りますが、誤った一致によりスタック情報が不正確になることがあります。その場合、[Bottom-up (ボトムアップ)] / [Top-down Tree (トップダウン・ツリー)] ペインに、[Guessed frame(s) (推測されたフレーム)] と [Skipped frame(s) (スキップされたフレーム)] という擬似ノードが表示されます。これらの問題の解決方法は、「トラブルシューティング」を参照してください。
また、スタックの巻き戻しでシステムやアプリケーション・モジュールのシンボルファイルが見つからない場合は、[Unknown frame(s) (不明なフレーム)] というノードが表示されます。詳細は、「不明なフレームの解決」を参照してください。
(C) 2010 Intel Corporation. 無断での引用、転載を禁じます。