インテル® VTune™ プロファイラー・ユーザーガイド

問題: 'イベント数= サンプリング間隔値 (SAV) * サンプル数' は、複数実行が無効な場合正しくありません

原因

[複数実行を許可] オプションは、[解析の設定] ウィンドウの [何を] ペインの [高度] セクションにあります。デフォルトでは、このオプションは無効に設定されており、インテル® VTune™ プロファイラーはイベントの多重化を使用して、一度の実行でデータを収集します。この手法は収集したデータの精度を低下させます。そのため、インテル® VTune™ プロファイラーは次の式を使用して収集したイベント数を計算します: イベント数 = サンプリング間隔値 (SAV) * サンプル数。しかし、イベントの多重化が有効にされると、式は次のようになります: イベント数 = サンプリング間隔値 * サンプル数 * イベント・グループ・カウント。ここで、イベント・グループ・カウントは、収集中に使用された異なるイベントのグループ数です。イベント・グループ・カウントの多重化は、インテル® VTune™ プロファイラーが 1 つのイベントグループのみのイベントを収集する際の間隔を埋める経験則に基づいて導入されました。

例えば、3 つのイベントグループ A、B、C があると想定します。イベント A1 はグループ A にあります。アプリケーションの実行中、インテル® VTune™ プロファイラーは各グループのイベントを収集する際に同じ時間を費やします。グループ A を解析する間、イベント A1 は SAV 10,000 で 10 サンプルがカウントされましたが、アプリケーションの残りの部分では A1 サンプルは全く発生しませんでした。この場合、正確な結果は 100,000 イベント (10,000 * 10) です。しかし、インテル® VTune™ プロファイラーは、結果のイベント数を 100,000 * 3 (A、B, および C グルプ) = 300,000 として報告します。

解決方法

[複数実行を許可] オプションをオフにして、各イベントグループで個別にデータ収集を実行します。この手法は、収集されたイベントに関する正確なデータを提供します。

関連情報