Oracle® Solaris Studio 12.4: パフォーマンスアナライザチュートリアル

印刷ビューの終了

更新: 2014 年 12 月
 
 

mttest のハードウェアカウンタプロファイリング実験の検査

このセクションでは、前のセクションの mttest サンプルコードで作成した実験のデータを調査する方法を示します。

  1. 次のようにして、mttest ディレクトリからパフォーマンスアナライザを起動し、実験をロードします。

    % analyzer test.1.er

    実験が開くと、パフォーマンスアナライザの「概要」ページが表示されます。

    image:mttest サンプル実験の「概要」ページ

    「クロックプロファイリング」メトリックが最初に表示され、色付きのバーが含まれます。大部分のスレッド時間が「ユーザー CPU 時間」で消費されます。「休眠時間」または「ユーザーロック時間」で一定の時間が消費されます。

    「派生およびその他のメトリック」グループは、cycles カウンタと insts カウンタの両方を記録した場合に存在します。派生メトリックは、それら 2 つのカウンタからのメトリックの比率を表します。「サイクル当たりの命令数」の値が高い、または「命令当たりのサイクル数」の値が低いことは、コードが比較的効率的であることを示唆します。反対に、「サイクル当たりの命令数」の値が低い、または「命令当たりのサイクル数」の値が高いことは、コードが比較的非効率であることを示唆します。

    この実験では、「HW カウンタプロファイリング」グループは 2 つのサブグループ「データスペースハードウェアカウンタ」および「一般ハードウェアカウンタ」を示します。「一般ハードウェアカウンタ」には「命令の実行」カウンタ (insts) が含まれます。収集したデータに cycles カウンタが含まれていた場合、「CPU サイクル」も「一般ハードウェアカウンタ」に含まれます。正確な dcm カウンタを備えるマシンでデータが収集された場合、「データスペースハードウェアカウンタ」には「L1 データキャッシュミス」が含まれます。dcm カウンタが利用可能であったが正確なカウンタでない場合、「L1 データキャッシュミス」は「一般ハードウェアカウンタ」に含まれます。正確なカウンタとは、オーバーフローを発生させる命令の実行時に、そのオーバーフロー割り込みが伝達されるカウンタのことです。正確でないカウンタは、オーバーフローを発生させる命令を過ぎてから、可変量の「滑り」を伴って伝達されます。正確でないカウンタは、メモリー関連のカウンタであってもデータ領域プロファイリングには使用できません。データ領域プロファイリングについては、Oracle Solaris Studio 12.4: パフォーマンスアナライザ のデータ領域プロファイリングとメモリー領域プロファイリングを参照してください。

    システムが dcm をサポートせず、Makefile を編集して –h dcm を削除した場合、「命令の実行」および「CPU サイクル」カウンタが表示されます。Makefile を編集して –h dcm–h cycles の両方を削除した場合、「命令の実行」カウンタのみが表示されます。

チュートリアルの以降のセクションで、これらのメトリックとその実装を調査します。