インテル® VTune™ Amplifier 2018 ヘルプ
イベントスキッドは、イベントを発生させるソースコード行と実際にイベントが発生する個所が異なるイベントの記録です。
イベントスキッドは、呼び出し関数イベントが、その関数によって呼び出される関数に記録される場合もあります。
イベントスキッドは、以下に示すような、さまざまな要因により発生します。
割り込みコントローラー (APIC) を通じてプロセッサーのマイクロコードからイベントを伝達し、プロセッサーに制御を戻す際の遅延のため。
現在実行中の命令リタイアメント・サイクルを完了しなければならないため。
割り込みが発生した場合、プロセッサーは実行パイプラインをフラッシュさせる命令ストリームをシリアル化しなければならないため。
インテル® プロセッサーは、いくつかのイベントの正確な発生場所をサポートします。これらのイベントは、プリサイスイベントと呼ばれます。
イベントスキッドは解析結果の精度に影響します。グループレベルが非常に小さい場合 (例えば、命令、ソース行、または基本ブロック)、インテル® VTune™ Amplifier はパフォーマンス結果を正しく関連付けることができません。例えば、列 A が問題を引き起こしても、列 B がホットスポットとして表示されます。ハードウェア・イベントベースのメトリックの計算式で異なる CPU イベントが異なるスキッドを持つ場合、インテル® VTune™ Amplifier はすべてのメトリックを無効化し、データを異なるブロックの結果と認識する恐れがあります。このような問題は、関数レベルでは通常現れません。
JMP や Call 命令の実行で発生したイベントは、元の JMP/Call命令実行フローから 1 または 2 命令離れた位置に現れます。この例では、ループの上部にある mov 命令は、イベントの 1.02% の発生元ではありません。これは、mov 命令は、ループの最後にある分岐のターゲットであるためです。このイベントの真の発生元は、ループの最後にある JMP 命令です。
イベント % |
命令 |
---|---|
1.02% |
|