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

第 8 章 実験の操作

この章では、コレクタおよびパフォーマンスアナライザとともに利用できるユーティーリティーについて説明します。

この章では、次の内容について説明します。

実験の操作

実験は、コレクタによって作成されたディレクトリ内に格納されます。実験の操作に、cpmvrm など通常の UNIX コマンドを使用し、ディレクトリに適用することができます。Forte Developer 7 (Sun ONE Studio 7, Enterprise Edition for Solaris) より前のリリースの実験には当てはまりません。このため、これらの UNIX コマンドのような働きを持つ、実験のコピー、移動、および削除用の 3 つのユーティリティーが用意されています。次に、これらのユーティリティー er_cp(1)、er_mv(1)、er_rm(1) を説明します。

実験のデータには、プログラムによって使用された各ロードオブジェクトのアーカイブファイルが含まれます。これらのアーカイブファイルには、ロードオブジェクトの絶対パスとその最終修正日付が含まれています。実験を移動またはコピーしたときにこの情報が変更されることはありません。

er_cp ユーティリティーを使った実験のコピー

次の 2 つの形式の er_cp コマンドを使用できます。


er_cp [-V] experiment1 experiment2
er_cp [-V] experiment-list directory

最初の形式の er_cp コマンドは、experiment1experiment2 にコピーします。experiment2 が存在する場合、er_cp はエラーメッセージを出力して終了します。2 つ目の形式は、リスト中の空白で区切られた一群の実験をディレクトリにコピーします。コピー先のディレクトリにコピー対象の実験と同じ名前の実験がすでに存在する場合、er_mv ユーティリティーはエラーメッセージを出力して終了します。-V オプションは、er_cp ユーティリティーのバージョンを表示します。このコマンドでは、Forte Developer 7 リリースより前のソフトウェアリリースで作成された実験はコピーされません。

er_mv ユーティリティーを使った実験の移動

次の 2 つの形式の er_mv コマンドを使用できます。


er_mv [-V] experiment1 experiment2
er_mv [-V] experiment-list directory

最初の形式の er_mv コマンドは、experiment1experiment2 に移動します。experiment2 が存在する場合、er_mv ユーティリティーはエラーメッセージを出力して終了します。2 つ目の形式のコマンドは、リスト中の空白で区切られた一群の実験をディレクトリに移動します。移動先のディレクトリに移動対象の実験と同じ名前の実験がすでに存在する場合、er_mv ユーティリティーはエラーメッセージを出力して終了します。-V オプションは、er_mv ユーティリティーのバージョンを表示します。このコマンドでは、Forte Developer 7 リリースより前のソフトウェアリリースで作成された実験は移動されません。

er_rm ユーティリティーを使った実験の削除

実験または実験グループのリストを削除します。実験グループが削除されるときは、グループ内の実験が削除されてから、グループファイルが削除されます。

er_rm コマンドの構文は次のとおりです。


er_rm [-f] [-V] experiment-list

-f オプションを使用するとエラーメッセージが表示されず、実験が存在するかどうかにかかわらずコマンドは正常に終了します。-V オプションは、er_rm ユーティリティーのバージョンを表示します。このコマンドは、Forte Developer 7 リリースより前のソフトウェアリリースで作成された実験を削除します。

そのほかのユーティリティー

そのほかのユーティリティーとして、通常の状況で使用する必要のないものがいくつかあります。ここでは、完全な説明を行うためこれらのユーティリティーについて解説し、それらを使用することが必要となる可能性がある状況についても説明します。

er_archive ユーティリティー

er_archive コマンドの構文は次のとおりです。


er_archive [-nqAF] experiment
er_archive -V

er_archive ユーティリティーは、実験が正常に完了したとき、または実験でパフォーマンスアナライザか er_print ユーティリティーが開始されたとき、自動的に実行されます。er_archive ユーティリティーは、カーネルプロファイリングセッションが Ctrl-C または kill コマンドにより強制終了された場合も、er_kernel により自動的に実行されます。このユーティリティーは、実験で参照されている共有オブジェクトのリストを読み取り、それぞれについてアーカイブファイルを構築します。それぞれの出力ファイル名には .archive というサフィックスが付加され、共有オブジェクトについての関数およびモジュールのマッピングが含まれます。

対象のプログラムが異常終了すると、コレクタによって er_archive ユーティリティーが実行されない場合があります。実験が異常終了した場合、その実験が記録されたものとは別のマシンからその実行を検査するには、データが記録されているマシン上で、その実験に対して er_archive ユーティリティーを実行する必要があります。実験がコピーされる先のマシンのロードオブジェクトが利用できることを確認するには、-A オプションを使用します。

アーカイブファイルは、実験で参照されているすべての共有オブジェクトについて生成されます。これらのアーカイブには、すべてのオブジェクトファイルとそのロードオブジェクト内のすべての関数のアドレス、サイズ、名前、ロードオブジェクトの絶対パス、および最終変更日時を示すタイムスタンプが含まれます。

er_archive ユーティリティーの実行時に共有オブジェクトが見つからない場合、オブジェクトのタイムスタンプが実験に記録されているものと異なる場合、または実験が記録されたものとは異なるマシン上で er_archive ユーティリティーが実行された場合は、アーカイブファイルに警告が含まれます。er_archive ユーティリティが手動で実行された場合 (-q フラグを使用せずに実行された場合) は、stderr にも警告が出力されます。

次に、er_archive ユーティリティーに使用可能なオプションについて説明します。

-n

名前付きの実験のみをアーカイブし、子孫はアーカイブしません。

-q

stderr に警告を出力しません。警告はアーカイブファイルに組み入れられ、パフォーマンスアナライザ、または er_print ユーティリティーの出力に表示されます。

-A

すべてのロードオブジェクトを実験に書き込むことを要求します。この引数を使用して生成された実験は、その実験が記録されているものとは別のマシンに簡単にコピーできます。

-F

アーカイブファイルを強制的に書き込み、または再書き込みします。この引数を使用すると、er_archive を手動で実行し、警告を含むファイルを再書き込みできます。

-V

er_archive ユーティリティーのバージョン番号の情報を書き込み、終了します。

er_export ユーティリティー

er_export コマンドの構文は次のとおりです。


er_export [-V] experiment

er_export ユーティリティーは、実験に含まれている raw データを ASCII テキストに変換します。ファイルの書式と内容は変更される可能性があり、どのような用途でも特定の書式や内容に依存するべきではありません。このユーティリティーは、パフォーマンスアナライザが実験を読み取れない場合にのみ使用されることを意図したものです。この出力を使用して、ツール開発者は raw データを調べて問題を解析できます。-V オプションは、バージョン番号の情報を表示します。