インテル® VTune™ Amplifier 2018 ヘルプ
パフォーマンスの問題をよく理解するには、そのホットスポットの原因である実際のマシン命令とソースコードを関連付けることが重要です。
それには、インテル® VTune™ Amplifier のビューポイントからソース/アセンブリー・コードを直接開きます。
[Source (ソース)]/[Assembly (アセンブリー)] ウィンドウは、次のペインを異なるタブで開きます。
[Source] ペインは、C、C++、もしくは Fortran などの高レベルのプログラミング言語で記述されたコードを表示します。選択された関数のシンボル情報がある場合、[Source] ペインが開きます。
[Assembly] ペインは、逆アセンブルコードを表示します。このコードは、プロセッサーによって実際に実行されるアセンブリー命令の順番で表示されます。[Assembly] ペインの命令は、基本ブロックごとにグループ化されています。
ソース表示と [Source]/[Assembly] ペインを管理するには、[Source] と [Assembly] のトグルボタンを使用します。ボタンは、[Source (ソース)] ウィンドウのツールバーにあります。
[Source]/[Assembly] ウィンドウには、コードがデバッグ情報付きでコンパイルされ、デバッグ情報ファイル/シンボルファイルが適切なデバッグ情報を含んでいれば、正確な情報が表示されます。
正しいデバッグ情報がない場合や、シンボルファイルを利用できない場合は、アセンブリー・データは正しくない可能性があります。この場合、インテル® VTune™ Amplifier はヒューリスティックに従ってバイナリーモジュール内の関数境界を定義します。
ペインに表示される内容は関連付けられます。ペイン上の 1 つの要素を選択すると、他のペインは対応する要素にスクロールして、それらをハイライト表示します。
1 つのソースコード行は、単一のアセンブリー命令または複数のアセンブリー命令で構成されます。
同期は、選択した関数に対応するデバッグ行情報が参照可能な場合にのみ利用できます。
特定のソース/アセンブリー・コードを開くには、グリッド表示/[Call Stack (コールスタック)]/[Timeline (タイムライン)] ペインで選択した項目をダブルクリックするか、コンテキスト・メニューから [View Source (ソースの表示)] オプションを選択します。
グリッドで関数をクリックしてソース表示を開いた場合、インテル® VTune™ Amplifier は、その関数の最もホットな (ホットなメトリックデータ値とともに) 行を [Source]/[Assembly] ペインに表示します。
コールスタックをクリックした場合、インテル® VTune™ Amplifier は、コールスタックの最上位の呼び出し (の場所) をハイライトしてソースを開きます。呼び出しは黄色の矢印 で示されます。
[Timeline] ペインの wait (待機) をクリックすると、インテル® VTune™ Amplifier は呼び出しをハイライトして待機する関数を開きます。(ロックと待機データの) 移行をダブルクリックすると、単一の呼び出しをハイライトします。
[Source]/[Assembly] ウィンドウ内のコードを簡単に調査して、最も高いメトリック値 (ホットスポット) をコード行から探すには、次のオプションを使用します。
ホットスポットのナビゲーション・ボタン: 選択した関数のホットスポットとなるコード行を切り替えて簡単に特定するには、ソース/アセンブリー・ツールバーのボタンを使用します。
操作 |
説明 |
---|---|
最大のメトリック値を持つ行に移動します。 |
|
前の (メトリック値による) ホットスポット行に移動します。 |
|
次の (メトリック値による) ホットスポット行に移動します。 |
|
最小のメトリック値を持つ行に移動します。 |
ホットスポットのナビゲーションは、注目するデータとして設定されたメトリックの列に対してのみ利用できます。例えば、基本ホットスポット解析における注目するデータのデフォルトは、CPU 時間です。注目するデータを変更するには、メトリックの列を右クリックして、コンテキスト・メニューから [Set As Data of Interest (注目するデータとして設定)] を選択します。注目するデータのメトリックの列は、星印のアイコン としてマークされ、黄色にハイライトされます。
ヒートマップ・マーカー: (注目するメトリックのデータを基にした) ホットスポット行を素早く特定するには、垂直スクロールバーの右にある青色のマーカーを使用します。ホットスポットを表示するには、スクロールバーのスライドをマーカーに移動します。明るい青色のマーカー () は、ドリルダウンした関数のホットな行を示します。薄い青色のマーカー () は、他の関数のホットでない行を示します。背景色は、現在のセクションを示しています。
アセンブリーのグループ化メニュー: [Assembly] ペインでうまくナビゲーションを行うには、[Assembly grouping (アセンブリーのグループ化)] ドロップダウン・メニューで利用可能な粒度を選択します: Address (アドレス)、Basic Block/Address (基本ブロック/アドレス)、Function Range/Basic Block/Address (関数範囲/基本ブロック/アドレス)。インテル® VTune™ Amplifier は、選択された階層構造に従って命令を構成するノードに分類してアセンブリー表示のグループを更新します。
ウィンドウの下にある Loading data (データを読み込み中) メッセージの赤い十字をクリックすると、選択しているグループを解除できます。
ターゲットをチューニングするには、ソースコードの修正が必要です。インテル® VTune™ Amplifier では、[Source]/[Assembly] ウィンドウから直接ソースファイルを開いて修正できます。
ソースエディターを起動するには:
[Source] ペインで、修正する行を選択します。
ソース行を右クリックして、コンテキスト・メニューから [Edit Source (ソースの編集)] を選択するか、ソース/アセンブリー・ツールバーにある [Open Source File Editor (ソースファイル・エディターを開く)] ボタンをクリックします。
システムでデフォルトに設定されているコードエディターが開き、ソースコードが表示されます。EDITOR 環境変数 (例えば vi など) や VISUAL 環境変数 (例えば gedit、emacs など) で定義されているコードエディターでソースコードを開きます。エディター・アプリケーションによっては、実際に選択された行が開かれます。
コードの修正が完了したら、ターゲットを再ビルドして、変更後のバージョンをインテル® VTune™ Amplifier で再度解析し、最適化の前後のパフォーマンス結果を比較します。
ソース/アセンブリー解析は、#lineディレクティブを使用するソースコードではサポートされません。