JavaScript is required to for searching.
ナビゲーションリンクをスキップ
印刷ビューの終了
Oracle Solaris Studio 12.3: パフォーマンスアナライザ     Oracle Solaris Studio 12.3 Information Library (日本語)
search filter icon
search icon

ドキュメントの情報

はじめに

1.  パフォーマンスアナライザの概要

2.  パフォーマンスデータ

3.  パフォーマンスデータの収集

プログラムのコンパイルとリンク

ソースコードの情報

静的リンク

共有オブジェクトの処理

コンパイル時の最適化

Java プログラムのコンパイル

データ収集と解析のためのプログラムの準備

動的割り当てメモリーの利用

システムライブラリの使用

シグナルハンドラの使用

setuidsetgid の使用

データ収集のプログラム制御

C/C++ インタフェース

Fortran インタフェース

Java インタフェース

C/C++、Fortran、および Java API 関数

動的な関数とモジュール

collector_func_load()

collector_func_unload()

データ収集に関する制限事項

時間ベースのプロファイルに関する制限事項

時間プロファイルによる実行時のひずみと実行時間の拡大

トレースデータの収集に関する制限事項

トレースによる実行時のひずみと実行時間の拡大

ハードウェアカウンタオーバーフローのプロファイルに関する制限事項

ハードウェアカウンタオーバーフローのプロファイルによる実行時のひずみと実行時間の拡大

派生プロセスのデータ収集における制限事項

OpenMP プロファイルに関する制限事項

Java プロファイルに関する制限事項

Java プログラミング言語で書かれたアプリケーションの実行時のひずみと実行時間の拡大

収集データの格納場所

実験名

実験グループ

派生プロセスの実験

MPI プログラムの実験

カーネルおよびユーザープロセス上の実験

実験の移動

必要なディスク容量の概算

データの収集

collect コマンドによるデータの収集

データ収集オプション

-p option

-h counter_definition_1...[, counter_definition_n]

-s option

-H option

-M option

-m option

-S option

-c option

-I directory

-N library_name

-r option

実験制御オプション

-F option

-j option

-J java_argument

-l signal

-t duration

-x

-y signal [ ,r]

出力オプション

-o experiment_name

-d directory-name

-g group-name

-A option

-L size

-O file

その他のオプション

-P process_id

-C コメント

-n

-R

-V

-v

collect ユーティリティーによる動作中のプロセスからのデータの収集

collect ユーティリティーを使用して動作中のプロセスからデータを収集する

dbx collector サブコマンドによるデータの収集

dbx からコレクタを実行する

データ収集のサブコマンド

profile option

hwprofile option

synctrace option

heaptrace option

tha option

sample option

dbxsample { on | off }

実験制御のサブコマンド

disable

enable

pause

resume

sample record name

出力サブコマンド

archive mode

limit value

store option

情報のサブコマンド

show

status

Oracle Solaris プラットフォーム上での dbx による動作中のプロセスからのデータの収集

dbx の制御下にない実行中のプロセスからデータを収集する方法

動作中のプロセスからのトレースデータの収集

MPI プログラムからのデータの収集

MPI 用の collect コマンドの実行

MPI 実験の格納

スクリプトからのデータの収集

collectppgsz を組み合わせた使用法

4.  パフォーマンスアナライザツール

5.   er_print コマンド行パフォーマンス解析ツール

6.  パフォーマンスアナライザとそのデータについて

7.  注釈付きソースと逆アセンブリデータについて

8.  実験の操作

9.  カーネルプロファイリング

索引

収集データの格納場所

アプリケーションの 1 回の実行で収集されたデータを、実験と呼びます。実験を構成する一連のファイルは、ディレクトリに格納されます。実験の名前は、ディレクトリの名前です。

コレクタは実験データを記録するばかりでなく、プログラムが使用したロードオブジェクトの独自のアーカイブも作成します。これらのアーカイブには、すべてのオブジェクトファイルとそのロードオブジェクト内のすべての関数のアドレス、サイズ、名前、ロードオブジェクトのアドレス、その最終変更日時を示すタイムスタンプが含まれます。

デフォルトでは、実験は現在のディレクトリに格納されます。このディレクトリがネットワーク接続されたファイルシステム上にある場合は、ローカルのファイルシステム上にあるときよりもデータの格納に長い時間がかかり、パフォーマンスデータにひずみが生じる可能性があります。可能であれば、常に、実験はローカルのファイルシステムに記録するようにしてください。コレクタを実行するときに、格納場所を指定することができます。

派生プロセスの実験は、親プロセスの実験の内部に格納されます。

実験名

新しい実験のデフォルト名は、test.1.er です。接尾辞 .er は必須です。この接尾辞を持たない名前を指定すると、エラーメッセージが表示され、名前は受け付けられません。

experiment .n.er という形式の名前 (n は正の整数値) を選択すると、以後の実験ではコレクタによって名前の n が自動的に 1 ずつ増やされます。たとえば、mytest.1.er の次は mytest.2.er、その次は mytest.3.er、以下同様に名前が付けられます。コレクタはまた、実験がすでに存在する場合も n を増分し、すでに実験名が使用されている場合は、使用されていない実験名が見つかるまで n の増分を繰り返します。実験が存在していても実験名に n が含まれていない場合、コレクタはエラーメッセージを出力します。

実験グループ

実験はグループにまとめることができます。グループは実験グループファイル内に定義され、このファイルはデフォルトでは現在のディレクトリに格納されます。実験グループファイルは、1 行のヘッダー行のあとに 1 行につき 1 つの実験名が定義されているプレーンテキストファイルです。実験グループファイルのデフォルト名は test.erg です。名前の末尾が .erg でない場合、エラーが表示され、その名前は受け付けられません。実験グループを作成した後で、そのグループ名で実行したすべての実験は、そのグループに追加されます。

先頭行が次の内容であるプレーンテキストファイルを作成することによって、実験グループファイルを手動で作成できます。

#analyzer experiment group

このあとの行に実験の名前を追加します。ファイルの名前の最後は、.erg でなければなりません。

collect ユーティリティーの -g 引数を使用して、実験グループを作成することもできます。

派生プロセスの実験

派生プロセスの実験は、系統によって次のように命名されます。派生プロセスの実験名は、作成元の実験名の根幹部に下線、コード文字、および番号を追加したものになります。コード文字は、fork の場合は f、exec の場合は x、組み合わせの場合は c です。数字は、fork または exec のインデックスで、成功したかどうかには関係ありません。たとえば親プロセスの実験名が test.1.er の場合、3 回目の fork の呼び出しで作成された子プロセスの実験は test.1.er/_f3.er となります。この子プロセスが exec の呼び出しに成功した場合、新しい派生プロセスの実験名は test.1.er/_f3_x1.er となります。

MPI プログラムの実験

MPI プログラムのデータはデフォルトでは test.1.er に収集され、MPI プロセスからのすべてのデータはサブ実験に収集されます (ランクごとに 1 つ)。コレクタは MPI ランクを使用して、M_rm.er の形式のサブ実験名を作成します。ここで、m は MPI ランクです。たとえば、MPI ランク 1 の実験データは、test.1.er/M_r1.er ディレクトリ内に記録されます。

カーネルおよびユーザープロセス上の実験

カーネル上の実験は、デフォルトでは test.1.er ではなく、ktest.1.er という名前が付けられます。データがユーザープロセスでも収集されるときは、カーネル実験には後続のユーザープロセスごとのサブ実験が含まれます。

サブ実験には、_process-name _PID_process-id.1.er という形式を使用して名前が付けられます。たとえば、プロセス ID 1264 で実行されている sshd プロセス上で実行される実験には、ktest.1.er/_sshd_PID_1264.1.er という名前が付けられます。

実験の移動

別のコンピュータに実験を移動して解析する場合は、実験が記録されたオペレーティング環境に解析結果が依存することに注意してください。

アーカイブファイルには、関数レベルでメトリックを計算してタイムラインを表示するのに必要な情報がすべて入っています。ただし、注釈付きソースコードや注釈付き逆アセンブリコードを調べるには、実験の記録時に使用されたものと同じバージョンのロードオブジェクトやソースファイルにアクセスできる必要があります。

実験のソースコードを検索するために使用されるプロセスについては、「ツールがソースコードを見つけるしくみ」を参照してください。

プログラムに対応する、正しい注釈付きソースコードと注釈付き逆アセンブリコードが確実に表示されるようにするには、ソースコード、オブジェクトファイル、および実行可能ファイルを実験にコピーしてから、実験の移動やコピーを行います。collect コマンドの -A copy オプション、または dbx collector archive コマンドを使用すると、ロードオブジェクトを実験に自動的にコピーすることができます。