データ収集のオプションは、どのような種類のデータを収集するのかを制御します。データの種類については、「コレクタが収集するデータの内容」を参照してください。
データ収集オプションを指定しなかった場合、デフォルトは -p on で、デフォルトのプロファイル間隔 (約 10 ミリ秒) で時間ベースのプロファイルが行われます。このデフォルト設定は、-h オプションを使用することによってのみ無効にできます。
時間ベースのプロファイルを明示的に無効とし、すべてのトレースとハードウェアカウンタオーバーフロープロファイルを有効にしなかった場合、collect コマンドは警告メッセージを出力し、大域データだけを収集します。
時間ベースのプロファイルデータを収集します。option には次のいずれかの値を指定できます。
off– 時間ベースのプロファイルを無効にします。
on– デフォルトのプロファイル間隔 (約 10 ミリ秒) で時間ベースのプロファイルを有効にします。
lo[w]– 低分解能プロファイル間隔 (約 100 ミリ秒) で時間ベースのプロファイルを有効にします。
hi[gh]– 高分解能プロファイル間隔 (約 1 ミリ秒) で時間ベースのプロファイルを有効にします。高分解能のプロファイルについては、「時間ベースのプロファイルに関する制限事項」を参照してください。
[+]value– 時間ベースのプロファイルを有効にし、プロファイル間隔を value に設定します。 value のデフォルトの単位はミリ秒です。value は、整数または浮動小数点数として指定できます。オプションとして、数値の後ろに接尾辞 m を付けてミリ秒単位を選択するか、u を付けてマイクロ秒単位を選択することができます。プロファイル間隔は、時間の分解能の倍数である必要があります。時間の分解能値よりも大きな値であっても倍数でない場合は、端数が切り捨てられます。時間の分解能値よりも小さな値の場合は、警告メッセージが出力され、時間の分解能に設定されます。
SPARC プラットフォームでは、ハードウェアカウンタのプロファイルと同様に、値の前に + 記号と付けて時間ベースのデータ空間プロファイリングを有効にできます。
collect コマンドは、デフォルトで時間ベースのプロファイルデータを収集します。
ハードウェアカウンタオーバーフローのプロファイルデータを収集します。カウンタ定義の数はプロセッサに依存します。 このオプションは、Linux オペレーティングシステムを実行しているシステムでも、perfctr パッチをインストールすると使用できるようになりました。このパッチは、http://user.it.uu.se/~mikpe/linux/perfctr/2.6/perfctr-2.6.15.tar.gz からダウンロードできます。
カウンタ定義には、プロセッサがハードウェアカウンタの属性をサポートしているかどうかに応じて、次のいずれかの形式を使用できます。
[+]counter_name[/ register_number][,interval ]
[+]counter_name[~ attribute_1=value_1]...[~attribute_n =value_n][/ register_number][,interval ]
プロセッサ固有の counter_name には、次のいずれかを指定できます。
既知の (別名を持つ) カウンタ名
cputrack(1) によって使用されるような raw (内部) 名。イベントレジスタのいずれかをカウンタに使用可能な場合は、内部名に /0 または /1 を付加することによって指定できます。
複数のカウンタを指定する場合、それらのカウンタは異なるレジスタを使用する必要があります。同じレジスタが指定された場合、collect コマンドはエラーメッセージを出力して終了します。どちらのレジスタでもカウントできるカウンタもあります。
使用可能なカウンタの一覧を表示するには、引数を指定せずに collect コマンドを端末ウィンドウに入力します。「ハードウェアカウンタのリスト」に、カウンタの一覧があります。
ハードウェアカウンタがメモリーアクセスに関連するイベントをカウントする場合、カウンタ名の前に + 記号を付けて、カウンタのオーバーフローを発生させた命令の実際のプログラムカウンタアドレス (PC) の検索をオンにすることができます。バックトラッキングは SPARC プロセッサ上で、load、store、load-store のいずれかのタイプのカウンタでのみ機能します。検索が成功すると、仮想 PC、物理 PC、および参照された有効アドレスがイベントデータパケットに格納されます。
一部のプロセッサでは、属性オプションをハードウェアカウンタへ関連付けることができます。 プロセッサが属性オプションをサポートしている場合は、collect コマンドを引数リストなしで実行すると、属性名を含むカウンタ定義が一覧表示されます。属性値は、10 進数または 16 進数形式で指定できます。
間隔 (オーバーフロー値) は、ハードウェアカウンタがオーバーフローしてオーバーフローイベントが記録されたときにカウントされたイベント数です。間隔は、次のいずれかに設定できます。
on または NULL 文字列 – デフォルトのオーバーフロー値。これは、collect を引数なしで入力することによって判別できます。
hi[gh]– 選択したカウンタの高分解能値。これは、デフォルトのオーバーフロー値の約 10 分の 1 の値です。旧バージョンのソフトウェアとの互換を図るため、h の省略形もサポートされています。
lo[w]– 選択したカウンタの低分解能値。これは、デフォルトのオーバーフロー値より約 10 倍長い値です。
interval– 特定のオーバーフロー値。これは正の整数である必要がありますが、10 進数と 16 進数のどちらの形式でもかまいません。
デフォルトでは、事前に各カウンタに定義されている通常のしきい値が使用されます。これらの値はカウンタの一覧に表示されます。「ハードウェアカウンタオーバーフローのプロファイルに関する制限事項」も参照してください。
-p オプションを明示的に指定せずに -h オプションを使用すると、時間ベースのプロファイルが無効となります。ハードウェアカウンタデータと時間ベースデータの両方を収集するには、 -h オプションと -p オプションの両方を指定する必要があります。
同期待ちトレースデータを収集します。option には次のいずれかの値を指定できます。
all– しきい値ゼロで同期待ちのトレースを有効にします。このオプションは、すべての同期イベントの記録を強制的に有効にします。
calibrate– 同期待ちのトレースを有効にし、実行時に測定を行うことによってしきい値を設定します。on と同じです。
off– 同期待ちのトレースを無効にします。
on– デフォルトのしきい値 (実行時の測定で値を決定) で同期待ちのトレースを有効にします。calibrate と同じです。
同期待ちのトレースデータは、Java モニターには記録されません。
ヒープトレースデータを収集します。option には次のいずれかの値を指定できます。
on– ヒープの割り当て要求と割り当て解除要求のトレースを有効にします。
off– ヒープのトレースを無効にします。
デフォルトでは、ヒープのトレースは無効です。ヒープトレースは Java プログラムについてはサポートされず、指定するとエラーとして処理されます。
MPI トレースデータを収集します。option には次のいずれかの値を指定できます。
on– MPI 呼び出しのトレースを有効にします。
off– MPI 呼び出しのトレースを無効にします。
デフォルトでは、MPI トレースは無効です。
呼び出しがトレースされる MPI 関数とトレースデータをもとに計算されるメトリックの詳細については、「MPI トレースデータ」を参照してください。
標本パケットを定期的に記録します。option には次のいずれかの値を指定できます。
off– 定期的標本収集を無効にします。
on– デフォルトの標本収集間隔 (1 秒) による定期的な標本収集を有効にします。
デフォルトでは、1 秒間隔による定期的標本収集が有効になります。
カウントデータを記録します。SPARC プロセッサだけが対象です。
この機能を使用するには、Sun Studio 12 用 Add-on Cool Tools に含まれるバイナリインタフェースツール (BIT) が必要です。このツールは、http://cooltools.sunsource.net/ からダウンロードできます。BIT は、SPARC バイナリのパフォーマンスやテストスイートカバレージの測定用ツールです。
option には次のいずれかの値を指定できます。
on– 関数と命令のカウントデータの収集を有効にします。実行可能ファイル、およびその実行可能ファイルが静的にリンクしている共有オブジェクトが -xbinopt=prepare フラグを指定してコンパイルされている場合に、そのデータが記録されます。静的にリンクしていても -xbinopt=prepare フラグを指定してコンパイルされていない共有オブジェクトはデータに含まれません。同様に、動的に開く共有オブジェクトはデータに含まれません。データは、パフォーマンスアナライザの「命令頻度」タブ、または er_print ifreq コマンドで確認できます。
static– ターゲットの実行可能ファイル、および静的にリンクされている共有オブジェクト内のすべての命令が 1 回だけ実行されたという前提で実験を生成します。-c on オプションと同様に、-c static オプションも、実行可能ファイルと共有オブジェクトが -xbinopt=prepare フラグを指定してコンパイルされている必要があります。
スレッドアナライザ用に、データ競合検出またはデッドロック検出のデータを収集します。次のいずれかの値を指定できます。
on – スレッドアナライザのデータ競合検出データを有効にします。
off– スレッドアナライザのデータを無効にします。
all– スレッドアナライザのデータをすべて有効にします。
race- スレッドアナライザのデータ競合検出データを有効にします。
deadlock– デッドロックと潜在的デッドロックのデータを収集します。
dtN– スレッドアナライザの特定のデータの種類を有効にします。データの種類は dt* パラメータで指定します。
collect -r コマンドとスレッドアナライザの詳細については、『Sun Studio 12: Thread Analyzer User’s Guide』および tha.1 のマニュアルページを参照してください。