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

印刷ビューの終了

更新: 2014 年 12 月
 
 

ハードウェアカウンタプロファイリングのチュートリアルについて

このチュートリアルでは、mttest という名前のマルチスレッドプログラムに対してパフォーマンスアナライザを使用し、クロックプロファイリングおよびハードウェアカウンタプロファイリングのデータを収集および理解する方法を示します。

「概要」ページを調査し、表示するメトリックを変更し、「関数」ビュー、「呼び出し元-呼び出し先」ビュー、および「ソース」と「逆アセンブリ」ビューを検証し、フィルタを適用します。

まず、クロックプロファイルデータを調査します。次に、サポートされているすべてのシステムで利用可能な「命令の実行」カウンタを使用して、ハードウェアカウンタプロファイルデータを調査します。そのあと、「命令の実行」と「CPU サイクル」(一部を除いた、サポートされているほとんどのシステムで利用可能)、および「データキャッシュミス」(サポートされている一部のシステムで利用可能) を調査します。

データキャッシュミス (dcm) の正確なハードウェアカウンタを備えたシステムで実行する場合、IndexObject および MemoryObject ビューの使用方法と、キャッシュ行の偽共有を検出する方法についても学びます。

mttest プログラムは、ダミーデータに対してさまざまな同期オプションを実行する単純なプログラムです。プログラムはさまざまなタスクを実装し、各タスクは次の基本アルゴリズムを使用します。

  • 複数のワークブロック (デフォルトで 4 つ) をキューに入れます。各ブロックは構造体 Workblk のインスタンスです。

  • 作業を処理する複数のスレッド (これもデフォルトで 4 つ) を生成します。スレッドのプライベートなワークブロックを各スレッドに渡します。

  • 各タスクで、特定の同期プリミティブを使用して、ワークブロックへのアクセスを制御します。

  • 同期のあと、ブロックに対する作業を処理します。

記録する実験で目にするデータは、ここで示されているものとは異なります。チュートリアルのスクリーンショットに使用した実験は、Oracle Solaris 11.2 を実行する SPARC T5 システムで記録されました。Oracle Solaris または Linux を実行する x86 システムからのデータは異なります。さらに、データ収集には統計的な性質があり、同じシステムおよび OS で実行する場合でも実験ごとに異なります。

パフォーマンスアナライザの実際のウィンドウ構成は、スクリーンショットと厳密に一致しない場合があります。パフォーマンスアナライザでは、ウィンドウのコンポーネント間の区切りバーをドラッグしたり、コンポーネントを縮小したり、ウィンドウのサイズを変更したりできます。パフォーマンスアナライザはその構成を記録し、次回の実行時に同じ構成を使用します。チュートリアルで示しているスクリーンショットの取得過程で、多くの構成を変更しました。