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

ソースコード解析

パフォーマンスの問題をよく理解するには、ホットスポットとその原因である実際のマシン命令とソースコードを関連付けることが重要です。

必要条件

インテル® VTune™ プロファイラーは、コードがデバッグ情報付きでコンパイルされ、デバッグ情報がバイナリーファイル (Linux* ターゲット)、またはデバッグ情報ファイル/シンボルファイル (Windows* ターゲット) に正しく書き込まれている場合、正確なソースコード解析が可能となります。

ソースビューを表示する

特定のソース/アセンブリー・コードを開くには、グリッドビュー/コールスタック/タイムライン・ペインで選択した項目をダブルクリックするか、コンテキスト・メニューから [ソースを表示] を選択します。

[ソース] ビューへのアクセス方法によって、ペイン上のデータ表示が若干異なる場合があります。

コードを解析

[ソース/アセンブリー] ウィンドウは、次のペインを異なるタブで開きます。

ソースビュー

[ソース]/[アセンブリー] トグルボタン。インテル® VTune™ プロファイラーはシンボル情報が利用できるかどうかにより、デフォルトでソースまたはアセンブリー・ペインを開きます。必要に応じてツールバーの [ソース][アセンブリー] トグルボタンを使用して、表示を切り替えることができます。

[ソース][アセンブリー] ペインに表示される内容は関連付けられます。一方のペインで 1 つの要素を選択すると、もう一方のペインはその要素にスクロールしてハイライト表示します。

  • 1 つのソースコード行は 1 つまたは複数のアセンブリー命令で構成され、1 つの命令は 1 つのソースコード行にのみ関連します。

  • 同期は、選択した関数に対応するデバッグ行情報が参照可能な場合にのみ利用できます。

[ホットスポット・ナビゲーション] ボタン。インテル® VTune™ プロファイラーは、この解析で設定された主要メトリックに基づいて、最もパフォーマンス・クリティカルなソースコードを開きます。最も高いメトリック値 (ホットスポット) のコード行へ移動するには、ツールバーにある次のボタンを使用します。

- 最大のメトリック値を持つ行に移動します。

- 前の (メトリック値の) ホットスポット行に移動します。

- 次の (メトリック値の) ホットスポット行に移動します。

- 最小のメトリック値を持つ行に移動します。

[ソース] ペインは、C、C++、もしくは Fortran などの高レベルのプログラミング言語で記述されたコードを表示します。選択された関数のシンボル情報がある場合、[ソース] ペインが開きます。

[ホットスポット・ナビゲーション] メトリックカラム。デフォルトでは、ソースビューの表示はホットスポット解析の CPU 時間などの主要な解析メトリックに基づいています。主要なメトリックのカラムはハイライト表示されます。ホットスポット・ナビゲーションのメトリックを変更するには、対象のカラムを右クリックして、コンテキスト・メニューから [ホットスポットのナビゲーションに使用] を選択します。

[アセンブリー] ペインは逆アセンブルコードを表示します。このコードは、プロセッサーによって実際に実行されたアセンブリー命令の順番を示します。[アセンブリー] ペインの命令は、基本ブロックごとにグループ化されています。特定の命令のヘルプを取得するには、グリッドの命令を選択して右クリックし、コンテキスト・メニューから [命令リファレンス] を選択します。

[アセンブリー] ペインで効率良くナビゲーションを行うには、[アセンブリーのグループ化]ドロップダウン・メニューで利用可能な粒度レベル (アドレス基本ブロック/アドレスまたは関数範囲/基本ブロック/アドレス) を選択します。。インテル® VTune™ プロファイラーは、選択された階層構造に基づいて命令を構成するノードに分類してアセンブリー表示のグループを更新します。

適切なデバッグ情報やシンボル情報が利用できない場合、アセンブリー・データは不正確になります。この場合、インテル® VTune™ プロファイラーは自身の持つヒューリスティックに従ってバイナリーモジュール内の関数境界を定義します。

ヒートマップ・マーカー: (ホットスポット・ナビゲーションのメトリックを基に) ホットスポット行を素早く特定するには、垂直スクロールバーの右にある青色のマーカーを使用します。ホットスポットを表示するには、スクロールバーのスライドをマーカーに移動します。明るい青色のマーカー () は、ドリルダウンした関数のホットな行を示します。薄い青色のマーカー () は、他の関数のホットな行を示します。

ソースを編集

ターゲットをチューニングするには、ソースコードの変更が必要です。インテル® VTune™ プロファイラーでは、[ソース/アセンブリー] ウィンドウから直接ソースファイルを開いて編集できます。

ソースエディターを起動する。

  1. [ソース] ペインで、編集する行を選択します。

  2. ソース行を右クリックして、コンテキスト・メニューから [ソースの修正] を選択するか、ソース/アセンブリー・ツールバーにある [ソースファイル・エディターを開く]エディターを開く ボタンをクリックします。

    システムのデフォルトのコードエディターでソースコードが開きます。例えば、Linux* では EDITOR 環境変数 (例えば vi など) や VISUAL 環境変数 (例えば geditemacs など) では定義されているコードエディターでソースコードが開きます。エディター・アプリケーションによっては、実際に選択された行が開きます。

コードの編集が完了したら、ターゲットを再ビルドして、変更後のバージョンでインテル® VTune™ プロファイラーの解析を再実行し、最適化の前後のパフォーマンス結果を比較します。

#line ディレクティブを使用したソースコードでは、ソース/アセンブリー解析はサポートされません。

関連情報