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

収集データの格納場所

アプリケーションの 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 となります。

実験の移動

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

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

パフォーマンスアナライザはソースファイル、オブジェクトファイル、および実行可能ファイルを次の場所で順に検索し、正しいベース名のファイルが見つかると検索を停止します。

検索順序を変更する、またはほかの検索ディレクトリを追加するには、アナライザの GUI を使用するか、setpath (setpath path_list を参照) および addpath (addpath path_list を参照) 指示を使用します。pathmap コマンドで検索を拡張することもできます。

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