ナビゲーションリンクをスキップ | |
印刷ビューの終了 | |
Oracle Solaris Studio 12.3: パフォーマンスアナライザ Oracle Solaris Studio 12.3 Information Library (日本語) |
ハードウェアカウンタオーバーフローのプロファイルに関する制限事項
ハードウェアカウンタオーバーフローのプロファイルによる実行時のひずみと実行時間の拡大
Java プログラミング言語で書かれたアプリケーションの実行時のひずみと実行時間の拡大
-h counter_definition_1...[, counter_definition_n]
collect ユーティリティーによる動作中のプロセスからのデータの収集
Oracle Solaris プラットフォーム上では、コレクタを使用して、動作中のプロセスからデータを収集できます。そのプロセスがすでに dbx の制御下にある場合は、プロセスを一時停止し、以前の節で説明された方法を使用してデータ収集を有効にすることができます。実行中のプロセスからデータ収集を開始する操作は、Linux プラットフォームではサポートされていません。
プロセスが dbx の制御下にない場合は、collect –P pid コマンドを使用して、実行中のプロセスからデータを収集できます。詳細は、「collect ユーティリティーによる動作中のプロセスからのデータの収集」を参照してください。プロセスに dbx を接続し、パフォーマンスデータを収集し、プロセスから切り離して、プロセスの実行を継続することもできます。選択した派生プロセスのパフォーマンスデータを収集するには、各プロセスに dbx を接続する必要があります。
コマンド行からプログラムを起動していて、バックグラウンドで実行している場合は、シェルによってその PID が標準出力に出力されます。それ以外の場合、次のコマンドを入力してプログラムの PID を判定できます。
% ps -ef | grep program-name
dbx から、次のように入力します。
(dbx) attach program-name pid
dbx をまだ実行していない場合は、次のように入力します。
% dbx program-name pid
実行中のプロセスに接続すると、そのプロセスが一時停止します。
プロセスへの接続についての詳細は、マニュアル『Oracle Solaris Studio 12.3: dbx コマンドによるデバッグ』を参照してください。
dbx から、collector コマンドを使用してデータ収集パラメータを設定し、cont コマンドを使用してプロセスを再開します。
データの収集を完了したら、プログラムを一時停止し、dbx からプロセスを切り離します。
dbx から、次のように入力します。
(dbx) detach
いずれかの種類のトレースデータを収集するには、プログラムを実行する前にコレクタライブラリ libcollector.so をプリロードする必要があります。ヒープトレースデータまたは同期待ちトレースデータを収集するには、er_heap.so および er_sync.so もそれぞれプリロードする必要があります。これらのライブラリは、データ収集を実行するための実際の関数へのラッパーを提供します。また、コレクタは、ほかのシステムライブラリの呼び出しにもラッパー関数を追加し、それによって完全なパフォーマンスデータを確保できます。ライブラリをプリロードしないと、これらのラッパー関数を挿入できません。コレクタがシステムライブラリ関数に割り込む方法の詳細については、「システムライブラリの使用」を参照してください。
libcollector.so をプリロードするには、次の表に示すように、環境変数を使用してライブラリ名とライブラリへのパスを設定する必要があります。LD_PRELOAD 環境変数を使用して、ライブラリ名を設定します。ライブラリへのパスを設定するには、LD_LIBRARY_PATH、LD_LIBRARY_PATH_32、または LD_LIBRARY_PATH_64 環境変数を使用します。LD_LIBRARY_PATH は、_32 および _64 バリアントが定義されていない場合に使用されます。これらの環境変数をすでに定義している場合は、新しい値を追加してください。
表 3-2 libcollector.so、er_sync.so、および er_heap.so をプリロードするための環境変数設定
|
Oracle Solaris Studio ソフトウェアが /opt/solarisstudio12.3 にインストールされていない場合は、システム管理者に正しいパスを問い合わせてください。LD_PRELOADにフルパスを設定することもできますが、そのようにすると、SPARC V9 の 64 ビットアーキテクチャーを使用するときに問題が発生する可能性があります。
注 - 実行が終了したら LD_PRELOAD と LD_LIBRARY_PATH の設定を削除して、これらの設定が、同じシェルから起動されるほかのプログラムに対して有効なままにならないようにしてください。