< 目次

ソースコード解析

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

必要条件

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

[ソース] ビューにアクセス

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

[ソース] ビューにアクセスする使用したルートに応じて、ペイン上のデータ表示が若干異なる場合があります:

コードを解析

[ソース/アセンブリー] ウィンドウは、別のタブで開きます。

[ソース] ビュー

[ソース/アセンブリー] トグルボタン: インテル® VTune™ プロファイラーはシンボル情報が利用できるかどうかにより、デフォルトで [ソース] と [アセンブリー] のいずれかのペインを開きます。[ソース] または [アセンブリー]。ただし、ツールバーの [ソース][アセンブリー] の切り替えボタンでビューを管理し、必要または可能な場合は両方を有効にすることができます。

[ソース][アセンブリー] ペインに表示されるコンテンツは相関しています。1 つのペインで要素を選択すると、ほかのペインはその要素にスクロールしてハイライト表示します。

  • 単一のソースコード行には 1 つ以上の関連するアセンブリー命令が含まれることがありますが、1 つの命令には 1 つの関連するコード行のみが含まれます。

  • 選択した関数のデバッグライン情報が利用可能である場合にのみ同期が可能です。

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

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

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

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

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

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

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

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

[アセンブリー] ペインでうまくナビゲーションを行うには、[アセンブリーのグループ化]ドロップダウン・メニューで[アドレス][基本ブロック/アドレス]、または [関数範囲/基本ブロック/アドレス] 粒度レベルを選択します。インテル® VTune™ プロファイラーは、選択された階層構造に応じて命令を折りたたみ可能なノードにグループ化して、[アセンブリー] ビューを更新します。

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

ヒート・マップ・マーカー: 垂直スクロールバーの右側にある青いマーカーを使用して、ホットスポット行をすばやく識別します (ホットスポット・ナビゲーションのメトリックに基づきます)。ホットスポットを表示するには、スクロールバーのスライダーをマーカーまで移動します。明るい青色のマーカー () は、ドリルダウンした関数のホットラインを示します。薄い青色のマーカー () は、ほかの関数のホットな行を示します。

ソースを編集

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

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

  1. [ソース] ペインで、修正したい行を選択します。

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

    ソースコードは、システムのデフォルト・コード・エディターで開きます。たとえば、Linux* では、コードエディターは EDITOR 環境変数 (例: vi) または VISUAL 環境変数 (例: geditemacs) で定義されます。エディター・アプリケーションによっては、選択した行でコードが適切に開く場合があります。

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

ソース/アセンブリー解析は、#line ディレクティブを含むソースではサポートされません。

関連情報