パフォーマンスの問題を理解するには、そのホットスポットの原因である実際のマシン命令とソースコードを関連付けることが重要です。
インテル® VTune™ プロファイラーは、コードがデバッグ情報付きでコンパイルされ、デバッグ情報がバイナリーファイル (Linux* ターゲット)、またはデバッグ情報ファイル/シンボルファイル (Windows* ターゲット) に正しく書き込まれている場合、正確なソースコード解析が可能となります。
特定のソース/アセンブリー・コードを開くには、グリッド表示の [/コールスタック/タイムライン] ペインで選択した項目をダブルクリックするか、[コンテキスト] メニューから [ソースを表示] オプションを選択します。
[ソース] ビューへのアクセス方法によって、ペイン上のデータ表現が若干異なる場合があります。
グリッドで関数をクリックしてソースビューを開くと、インテル® VTune™ プロファイラーは、その関数の最もホットな行を (ホットなメトリック値とともに) [ソース/アセンブリー] ペインに表示します。
コールスタックをクリックすると、インテル® VTune™ プロファイラーはコールスタックの最上位の [呼び出し元] (の場所) をハイライトしてソースを開きます。呼び出し元は黄色の矢印 で示されます。
[タイムライン] ペインの待機をクリックすると、インテル® VTune™ プロファイラーは待機している呼び出しサイトをハイライトして待機関数を開きます。(スレッドデータの) 遷移をダブルクリックすると、シグナリング呼び出しサイトがハイライト表示されます。
[ソース/アセンブリー] ウィンドウは、別のタブで開きます。
[ソース]/[アセンブリー] トグルボタン: インテル® VTune™ プロファイラーはシンボル情報が利用できるかどうかにより、デフォルトで [ソース] と [アセンブリー] のいずれかのペインを開きます。必要に応じて、ツールバーの [ソース] と [アセンブリー] トグルボタンを使用して、表示を切り替えることができます。 [ソース] と [アセンブリー] ペインに表示される内容は関連付けられます。1 つのペインで要素を選択すると、ほかのペインはその要素にスクロールしてハイライト表示します。 注
|
|
[ホットスポット・ナビゲーション] ボタン: インテル® VTune™ プロファイラーは、この解析で設定された主要メトリックに基づいて、最もパフォーマンス・クリティカルなソースコードを開きます。最も高いメトリック値 (ホットスポット) のコード行へ移動するには、ツールバーの次のボタンを使用します。 - 最大のメトリック値を持つ行に移動します。 - 前の (メトリック値の) ホットスポット行に移動します。 - 次の (メトリック値の) ホットスポット行に移動します。 - 最小のメトリック値を持つ行に移動します。 |
|
[ソース] ペインは、C、C++、もしくは Fortran などの高レベルのプログラミング言語で記述されたコードを表示します。選択された関数のシンボル情報がある場合、[ソース] ペインが表示されます。 |
|
[ホットスポット・ナビゲーション] メトリックカラム: デフォルトでは、ソースビューの表示はホットスポット解析の CPU 時間に基づいています。主要な解析メトリックのカラムがハイライトされます。ホットスポット・ナビゲーション・メトリックを変更するには、対象のカラムを右クリックして、コンテキスト・メニューから [ホットスポットのナビゲーションに使用] を選択します。 |
|
[アセンブリー] ペインは逆アセンブルコードを表示します。このコードは、プロセッサーによって実際に実行されるアセンブリー命令の順番で表示されます。[アセンブリー] ペインの命令は、基本ブロックごとにグループ化されています。特定の命令のヘルプを取得するには、グリッドで命令を選択して右クリックし、コンテキスト・メニューから [命令リファレンス] を選択します。 [アセンブリー] ペインでうまくナビゲーションを行うには、[アセンブリーのグループ化] ドロップダウン・メニューで [アドレス]、[基本ブロック/アドレス]、または [関数範囲/基本ブロック/アドレス] 粒度レベルを選択します。インテル® VTune™ プロファイラーは、選択された階層構造に応じて命令を折りたたみ可能なノードにグループ化して、[アセンブリー] ビューを更新します。 適切なデバッグ情報やシンボル情報が利用できない場合、アセンブリー・データは不正確になります。この場合、インテル® VTune™ プロファイラーは自身の持つヒューリスティックに従ってバイナリーモジュール内の関数境界を定義します。 |
|
ヒート・マップ・マーカー: (ホットスポット・ナビゲーションのメトリックを基に) ホットスポット行を素早く特定するには、垂直スクロールバーの右にある青色のマーカーを使用します。ホットスポットを表示するには、スクロールバーのスライドをマーカーに移動します。明るい青色のマーカー () は、ドリルダウンした関数のホットな行を示します。薄い青色のマーカー () は、ほかの関数のホットな行を示します。 |
ターゲットをチューニングするには、ソースコードの修正が必要です。インテル® VTune™ プロファイラーでは、[ソース/アセンブリー] ウィンドウから直接ソースファイルを開いて修正できます。
ソースエディターを起動するには:
[ソース] ペインで、修正したい行を選択します。
ソース行を右クリックして、コンテキスト・メニューから [ソースの編集] を選択するか、[ソース/アセンブリー] ツールバーの [ソース・ファイル・エディターを開く] ボタンをクリックします。
ソースコードは、デフォルトとして設定されているシステムのコードエディターで開かれます。例えば、Linux* では EDITOR 環境変数 (例えば vi など) や VISUAL 環境変数 (例えば gedit、emacs など) でコードエディターが定義されています。エディター・アプリケーションによっては、実際に選択した行が開きます。
コードの修正が完了したら、ターゲットを再ビルドして、変更後のバージョンに対してインテル® VTune™ プロファイラーの解析を再実行し、最適化の前後のパフォーマンス結果を比較します。
ソース/アセンブリー解析は、#line ディレクティブを含むソースではサポートされません。