ハードウェア・イベント・スキッド

イベントスキッドは、イベントを発生させるソースコード行と実際にイベントが発生する行が異なるイベントの記録です。

イベントスキッドでは、呼び出し元の関数イベントが、呼び出し先の関数に記録される場合もあります。

イベントスキッドは、以下に示すような、さまざまな要因により発生します。

インテル® プロセッサーは、いくつかのイベントで正確な発生場所をサポートします。これらのイベントは、プリサイスイベントと呼ばれます。

注意

イベントスキッドは解析結果の精度に影響します。グループ化レベルが非常に小さい場合 (例えば、命令、ソース行、または基本ブロック)、インテル® VTune™ プロファイラーはパフォーマンス結果を正しく関連付けることができません。例えば、行 A が問題を引き起こしても、行 B がホットスポットとして表示されます。ハードウェア・イベントベースのメトリックの計算式で異なる CPU イベントが異なるスキッドを持つ場合、インテル® VTune™ プロファイラーはデータを異なるブロックの結果と認識する恐れがあります。その場合、すべてのメトリックが無効になります。このような問題は、関数レベルでは通常生じません。

例: Jump 命令および Call 命令の解釈

jmp または call の実行で発生したイベントは、元の jmp/call 命令実行フローから 1 または 2 命令離れた位置に表示されます。この例では、mov 命令はループの最後にある分岐のターゲットであるため、ループ上部の mov 命令はイベントの 1.02% には該当しません。このイベントの真の発生元は、ループの最後の jmp 命令です。

イベント %

命令

1.02%


    top_of_loop: 
       mov ... 
       ... (任意の行) 
    end_of_loop: 
       jnz <いずれかの行へ> 
    jmp top_of_loop

関連情報