Oracle Solaris Studio 12.2: パフォーマンスアナライザ

データ収集オプション

これらのオプションは、収集されるデータの種類を制御します。データの種類については、「コレクタが収集するデータの内容」を参照してください。

データ収集オプションを指定しなかった場合、デフォルトは -p on で、デフォルトのプロファイル間隔 (約 10 ミリ秒) で時間ベースのプロファイルが行われます。このデフォルト設定は、-h オプションを使用することによってのみ無効にできます。

時間ベースのプロファイルを明示的に無効とし、すべてのトレースとハードウェアカウンタオーバーフロープロファイルを有効にしなかった場合、collect コマンドは警告メッセージを出力し、大域データだけを収集します。

-p option

時間ベースのプロファイルデータを収集します。option に使用できる値は次のとおりです。

collect コマンドは、デフォルトで時間ベースのプロファイルデータを収集します。

-h counter_definition_1...[, counter_definition_n]

ハードウェアカウンタオーバーフローのプロファイルデータを収集します。カウンタ定義の数はプロセッサによって異なります。

このオプションは、Linux オペレーティングシステムを実行しているシステムでも、perfctr パッチをインストールすれば使用できるようになります。このパッチは、http://user.it.uu.se/~mikpe/linux/perfctr/2.6/ からダウンロードできます。インストール方法の指示は、tar ファイルに含まれています。ユーザーレベルの libperfctr.so ライブラリは、LD_LIBRARY_PATH 環境変数の値を使用して検索されたあとで、32 ビットバージョンでは /usr/local/lib/usr/lib、および /lib で、64 ビットバージョンでは /usr/local/lib64/usr/lib64、および /lib64 で検索されます。

使用可能なカウンタの一覧を表示するには、引数なしで collect コマンドを端末ウィンドウに入力します。カウンタの一覧については、「ハードウェアカウンタのリスト」を参照してください。ほとんどのシステムでは、カウンタが一覧に記載されていない場合でも、16 進数または 10 進数の数値で指定できます。

カウンタ定義には、プロセッサがハードウェアカウンタの属性をサポートしているかどうかに応じて、次のいずれかの形式を使用できます。

[+]counter_name[/ register_number][,interval ]

[+]counter_name[~ attribute_1=value_1]...[~attribute_n =value_n][/ register_number][,interval ]

プロセッサ固有の counter_name には、次のいずれかを指定できます。

複数のカウンタを指定する場合、それらのカウンタは異なるレジスタを使用する必要があります。同じレジスタが指定された場合、collect コマンドはエラーメッセージを出力して終了します。

ハードウェアカウンタがメモリーアクセスに関連するイベントをカウントする場合、カウンタ名の前に + 記号を付けて、カウンタのオーバーフローを発生させた命令の実際のプログラムカウンタアドレス (PC) の検索をオンにすることができます。バックトラッキングは SPARC プロセッサ上で、loadstoreload-store のいずれかのタイプのカウンタでのみ機能します。検索が成功すると、仮想 PC、物理 PC、および参照された有効アドレスがイベントデータパケットに格納されます。

一部のプロセッサでは、属性オプションをハードウェアカウンタと関連付けることができます。プロセッサが属性オプションをサポートしている場合は、collect コマンドを引数リストなしで実行すると、属性名を含むカウンタ定義が一覧表示されます。属性値は、10 進数または 16 進数形式で指定できます。

間隔 (オーバーフロー値) は、ハードウェアカウンタがオーバーフローしてオーバーフローイベントが記録されたときにカウントされたイベントまたはサイクルの数です。間隔は、次のいずれかに設定できます。

デフォルトでは、各カウンタに定義済みの通常のしきい値が使用されます。これらの値はカウンタの一覧に表示されます。「ハードウェアカウンタオーバーフローのプロファイルに関する制限事項」も参照してください。

-p オプションを明示的に指定せずに -h オプションを使用すると、時間ベースのプロファイルが無効となります。ハードウェアカウンタデータと時間ベースデータの両方を収集するには、-h オプションと -p オプションの両方を指定する必要があります。

-s option

同期待ちトレースデータを収集します。option に使用できる値は次のとおりです。

Java プログラムでは同期待ちトレースデータは記録されず、指定するとエラーとして処理されます。

Solaris では、次の関数がトレースされます。

mutex_lock()

rw_rdlock()

rw_wrlock()

cond_wait()

cond_timedwait()

cond_reltimedwait()

thr_join()

sema_wait()

pthread_mutex_lock()

pthread_rwlock_rdlock()

pthread_rwlock_wrlock()

pthread_cond_wait()

pthread_cond_timedwait()

pthread_cond_reltimedwait_np()

pthread_join()

sem_wait()

Linux では、次の関数がトレースされます。

pthread_mutex_lock()

pthread_cond_wait()

pthread_cond_timedwait()

pthread_join()

sem_wait()

-H option

ヒープトレースデータを収集します。option に使用できる値は次のとおりです。

デフォルトでは、ヒープのトレースは無効です。ヒープトレースは Java プログラムについてはサポートされず、指定するとエラーとして処理されます。

-M option

MPI 実験の収集を指定します。collect コマンドのタ−ゲットは mpirun コマンドである必要があります。また、mpirun コマンドのオプションは、‐‐ オプションを使って mpirun コマンドによって実行されるターゲットプログラムと分けて指定されることが必要です。(mpirun コマンドでは常に ‐‐ オプションを使用することで、collect コマンドとそのオプションを mpirun コマンド行の先頭に追加し、実験を収集できます。)この実験には通常の名前が付けられ、親の実験と呼ばれます。ディレクトリには MPI プロセスのそれぞれについて、ランクにより命名されたサブ実験が含まれます。

option に使用できる値は次のとおりです。

デフォルトでは、MPI 実験の収集は無効になっています。MPI 実験の収集が有効な場合、-m オプションのデフォルト設定は on に変更されます。

collect コマンドをオプションなしで入力するか、-M オプションで認識されないバージョンを指定すると、MPI のサポートされているバージョンが表示されます。

-m option

MPI トレースデータを収集します。option に使用できる値は次のとおりです。

MPI トレースは、デフォルトで無効です。ただし -M オプションが有効な場合は、デフォルトで有効になります。通常、MPI 実験は -M オプションで収集され、MPI トレースのユーザー制御は不要です。MPI 実験の収集を行うが、MPI トレースデータは収集しない場合、明示的なオプションの -M MPI-version -m off を使用します。

呼び出しがトレースされる MPI 関数とトレースデータをもとに計算されるメトリックスの詳細については、「MPI トレースデータ」を参照してください。

-S option

標本パケットを定期的に記録します。option に使用できる値は次のとおりです。

デフォルトでは、1 秒間隔による定期的標本収集が有効になります。

-c option

カウントデータを記録します (Solaris システムのみ)。


注 –

この機能を使用するには、Add-on Cool Tools for OpenSPARC に含まれているバイナリインタフェースツール (Binary Interface Tool、BIT) をインストールする必要があります。このツールは、http://cooltools.sunsource.net/ からダウンロードできます。BIT は、Solaris バイナリのパフォーマンスやテストスイートカバレージの測定用ツールです。


option には次のいずれかの値を指定できます。

デフォルトでは、カウントデータの収集を無効にします。ほかの種類のデータについて、カウントデータを収集することはできません。

-I directory

bit 計測のディレクトリを指定します。このオプションは Solaris システムでのみ使用可能で、-c オプションも同時に指定されている場合のみ意味を持ちます。

-N library_name

bit() 計測から除外するライブラリを指定します。ここで指定したものは、ライブラリが実行可能ファイルにリンクされているか、dlopen() によって読み込まれるかにかかわらず、除外されます。このオプションは Solaris システムでのみ使用可能で、-c オプションも同時に指定されている場合のみ意味を持ちます。-N オプションは複数指定できます。

-r option

スレッドアナライザ用に、データ競合検出またはデッドロック検出のデータを収集します。次のいずれかの値を指定できます。

collect -r コマンドとスレッドアナライザについての詳細は、『Oracle Solaris Studio 12.2: スレッドアナライザユーザーズガイド』および tha (1) のマニュアルページを参照してください。