ホットスポット解析を使用して、アプリケーション・フローを理解します。実行時間の大部分を占めるコード領域を特定します。これは、アルゴリズムの解析の出発点として使用されます。
このホットスポット解析には 2 つのサンプリング・ベースの収集モードがあります。
ユーザーモード・サンプリングは、高いオーバーヘッドが発生しますが、サンプリング・ドライバーを必要としません。
ハードウェア・イベントベース・サンプリングは、オーバーヘッドは最小限ですが、サンプリング・ドライバーや Perf をインストールする必要があります。
インテル® VTune™ プロファイラーは、オーバーヘッドの少ない (約 5%) ユーザーモード・サンプリングとトレース収集を使用し、アプリケーションの実行速度を低下させることなく必要な情報を取得できます。データコレクター
ユーザー・モード・サンプリングでは、コレクターはシステム全体のパフォーマンス・データは収集せず、アプリケーションのみを対象にします。システムのパフォーマンスを解析するには、ハードウェア・イベントベース・サンプリング・モードを使用します。
インテル® VTune™ プロファイラーは、アプリケーション内の関数のリストを表示します。デフォルトでは、このリストは各関数に費やされた時間によって順序付けられますが、モジュール、スレッド、またはプロセスで並べ替えることもできます。また、これらの各関数の呼び出しスタックを表示して、ホットな関数がどのように呼び出されるかを理解できます。
特定のプロセス、スレッドまたはモジュールで収集された多数のサンプルは、高いプロセッサー利用率と潜在的なパフォーマンスのボトルネックを意味します。一部のホットスポットは削除できます。他のホットスポットはアプリケーションの機能に不可欠なものであり、削除することはできません。
ハードウェア・イベントベース・サンプリング・モードは、イベントベース・サンプリング収集を使用し、 システム上で実行されるすべてのプロセスを解析して、システム全体のパフォーマンスに関連する CPU 時間データを提供します。インテル® VTune™ プロファイラーは、関数で費やされた時間順にアプリケーションの関数のリストを作成します。デフォルトでは、ハードウェア・イベントベース・サンプリング・モードのホットスポット解析は、ホットスポットを収集する際に関数のコールスタックを取得しません。ただし、コールスタックの収集を有効にすると、アプリケーション・モジュールのスタックを解析できます。
スタック情報を収集するハードウェア・イベントベース・サンプリングを実行できない場合、[スタックを収集] オプションを無効にして収集を実行します。収集したハードウェア・イベントベースのサンプリング・データをスタックと関連付けるには、ユーザー・モード・サンプリングで個別のホットスポット解析を実行します。
ホットスポット解析を設定して実行します。
必要条件: プロジェクトを作成します。
インテル® VTune™ プロファイラーの [ようこそ] 画面の (スタンドアロン GUI)/
(Visual Studio* IDE) [解析の設定] ボタンをクリックします。
[どのように] ペインの解析ツリーから [ホットスポット] 解析を選択します。
次のオプションを設定します。
[ユーザーモード・サンプリング] モード |
ホットスポットとコールスタック解析 (以前の基本ホットスポット) でユーザーモード・サンプリングとトレース収集を有効にする場合に選択します。この収集モードのサンプリング間隔は 10 ミリ秒に固定されています。サンプリング間隔を変更するには、[コピー] ボタンをクリックしてカスタム解析設定を作成します。 |
ハードウェア・イベントベース・サンプリング・モード |
ホットスポット解析 (以前の高度なホットスポット) でハードウェア・イベントベース・サンプリング収集を有効にする場合に選択します。 この収集モードでは以下のオプションを設定できます。
注収集オプションを変更する場合、右にある [オーバーヘッド] 分布図に注意してください。選択したオプションに応じて、発生するオーバーヘッドは動的に変化します。 |
[追加のパフォーマンス情報を表示] チェックボックス |
ベクトル化など追加のパフォーマンス情報を取得して次のステップに進みます。このオプションは追加の CPU イベントを収集しますが、これにより多重化モードが有効になることがあります。 このオプションは、デフォルトで有効になります。 |
[詳細] ボタン |
この解析タイプの編集不可デフォルトの設定のリストセクションを、拡張/折りたたみします。解析の設定を変更または設定の追加を有効にするには、既存の事前定義設定をコピーしてカスタム設定を作成する必要があります。インテル® VTune™ プロファイラーは、解析タイプ設定の編集可能なコピーを作成します。 |
[開始] ボタンをクリックして解析を実行します。
下部の [コマンドライン] ボタンを使用して、この設定のコマンドラインを生成できます。
データが収集されると、インテル® VTune™ プロファイラーは [CPU 利用率によるホットスポット] ビューポイントを開いて、次の解析ビューを表示します。
[サマリー] ウィンドウには、CPU 時間とプロセッサー利用率を解析する、アプリケーション全体の実行に関する統計情報が表示されます。
[ボトムアップ] ウィンドウには、ホットスポット関数のボトムアップ・ツリー、CPU 時間、および関数ごとの CPU 利用率が表示されます。
[トップダウン・ツリー] ウィンドウには、呼び出しツリー内のホットスポット関数、関数のみのパフォーマンス・メトリック (セルフ値)、および関数とその子関数のパフォーマンス・メトリック (合計値) が表示されます。
[呼び出し元/呼び出し先] ウィンドウには、選択した関数の親関数と子関数が表示されます。
[プラットフォーム] ウィンドウには、CPU と GPU 利用率、フレームレート、メモリー帯域幅、およびユーザータスク (対応するメトリックが収集されている場合 ) に関す売る詳細情報が表示されます。
グリッドで最も時間を消費する関数を特定し、ダブルクリックしてソース解析を行います。
ハイライト表示されている最もホットなコード行から始めて、ホットスポット・ナビゲーションを使用して重要な関数のソースを解析します。
ボトルネックを排除し、アプリケーションのパフォーマンスを改善するようにコードを修正します。
解析を再度実行して、比較モードで最適化の結果を確認します。
インテル® Advisor のベクトル化とコード調査のパースペクティブを使用して、ベクトル化を修正し、コード固有の推奨事項を取得します。
詳しい手順については、[サマリー] ウィンドウに表示される [ホットスポットの詳細] セクションを参照してください。このセクションには、標準のホットスポット・メトリックに加えて、収集されたメトリックに対するターゲットのパフォーマンス情報が含まれます。パフォーマンス上の問題が検出された場合、インテル® VTune™ プロファイラーはそのメトリック値にフラグを示し、問題を解決する次のステップを示す情報を示します。
ホットスポット解析で示される情報は、シリアル・アプリケーションだけでなく、並列アプリケーションのシリアル領域のチューニングにも有用です。ホットスポット解析データは、アプリケーションが何を行っているか理解し、チューニング対象のコードを特定するのに役立ちます。マルチコアシステムで実行される並列アプリケーションでは、スレッド化または HPC パフォーマンス特性分析も行うことを検討してください。