このセクションでは、前のセクションの mttest サンプルコードで作成した実験のデータを調査する方法を示します。
次のようにして、mttest ディレクトリからパフォーマンスアナライザを起動し、実験をロードします。
% analyzer test.1.er
実験が開くと、パフォーマンスアナライザの「概要」ページが表示されます。
「クロックプロファイリング」メトリックが最初に表示され、色付きのバーが含まれます。大部分のスレッド時間が「ユーザー 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 の両方を削除した場合、「命令の実行」カウンタのみが表示されます。
チュートリアルの以降のセクションで、これらのメトリックとその実装を調査します。