プログラムのパフォーマンス解析 | ![]() ![]() ![]() ![]() ![]() |
第 5 章
er_print
リファレンスこの章では、
er_print
ユーティリティの使い方について、以下の項目を説明します。
er_print
は、標本アナライザのサポートするさまざまな表示をテキスト形式で出力する Sun WorkShop のユーティリティです。情報は、ファイルまたはプリンタに出力先を変更しない限り、標準出力に出力されます。er_print
の引数として、標本コレクタが生成した実験レコードファイルの名前を指定する必要があります。標本コレクタが実験レコードファイルにデータを保存していれば、呼び出し元と呼び出し先の関数のパフォーマンス測定結果 (メトリック)、ソースコードと逆アセンブリのリスト、サンプリング情報、アドレス空間データ、実行統計情報を表示することができます。
er_print
は、Sun WorkShop の C、C++、Fortran 77、Fortran 95 用コンパイラおよびアセンブラで使用することができます。
er_print
の構文
er_print [-script script | -command | -] exper_1 exper_2...exper_nオプション
er_print
では、以下のオプションを指定することができます。
-script
scriptscript で指定したファイルからコマンドを読み込みます。このファイルでは、1 行に 1 つずつ er_print
コマンドを記述します (「er_print コマンド」を参照)。-script
オプションが指定されていない場合は、er_print
はコマンドを端末またはコマンド行から読み込みます。-
command指定したコマンドを処理します。
er_print
のコマンド行では、複数のオプションを指定することができます。オプションは、指定した順に処理されます。スクリプト、"-
" 引数、コマンド名は、任意の順序で組み合わせて指定することができます。コマンドやスクリプトの引数を指定しない場合は、er_print
は "-
" 引数を指定した場合と同様に対話型モードで処理され、キーボードで入力したコマンドが読み込まれます。
er_print
コマンド
er_print
で指定可能なコマンドを以下に示します。コマンド名は、他のコマンドと区別できる程度に省略することができます。関数リストコマンド
- 選択している測定結果 (メトリック) と関数を出力します。
- デフォルトでは、排他的および包含的ユーザー CPU 時間、秒数およびプログラム全体に占める割合が出力されます。
metrics
コマンドを使って、表示する内容を変更することができます。
- 関数ごとに、測定結果の要約を出力します。
- 関数の測定結果の要約については、「関数またはロードオブジェクトの測定結果の要約表示」を参照してください。
- 選択している測定結果のリストを使って、ロードオブジェクトを出力します。
- デフォルトでは、排他的および包含的ユーザー CPU 時間が、秒数およびプログラム全体の測定結果に占める割合が出力されます。
metrics
コマンドを使って、表示する測定結果を変更することができます。
- ロードオブジェクトリストのロードオブジェクトごとに、測定結果の要約を出力します。
- ロードオブジェクトの測定結果の要約については、「関数またはロードオブジェクトの測定結果の要約表示」を参照してください。
呼び出し元と呼び出し先の表示コマンド
以下のコマンドは、呼び出し側と呼び出し先の情報の表示を設定します。
- 関数ごとの「呼び出し元-呼び出し先」に、ソートして出力します。対象とされる (中央の) 関数は、以下のようにアスタリスクで示されます。
Excl. User Incl. User Attr. User NameCPU sec. CPU sec. CPU sec.0. 0.010 0.010 _doprnt0. 0. 0. _xflsbuf0. 0.010 0. *_realbufend0. 0.620 0. _rw_rdlock0. 0.010 0.010 rw_unlock- この例では、
_realbufend
が対象の関数です。この関数は、_doprnt
および_xflsbuf
によって呼び出され、_rw_rdlock
および_rw_unlock
を呼び出します。
- 呼び出し元と呼び出し先の測定結果を新しく指定します。
- metric_spec には、以下のように測定結果のキーワードのリストをコロンで区切って指定します。
cmetrics i.user:i%user:a.user:a%user
- このコマンドは、
er_print
で以下を表示するように指定します。
- 選択している測定結果のリストを表示するには、「
callers-callees
」コマンドを使います。
注 - 使用可能なer_print
の測定結果のキーワードのリストは、表 5-1を参照してください。実験で使用可能なキーワードのリストを生成するには、metric_list
またはcmetric_list
コマンドを使います。
ソースおよび逆アセンブリのリストコマンド
以下のコマンドは、注釈付きソースおよび逆アセンブリコードの表示を設定します。
disasm {
file|
function} [
N]
- 指定したファイルまたは指定した関数を含むファイルの注釈付き逆アセンブリコードを出力します。いずれの場合も、指定したパスのディレクトリにファイルが存在する必要があります。
- 省略可能なパラメータ N (1 以上の整数) は、ファイルまたは関数名があいまいな場合にだけ指定します。あいまいな場合は、N 番目に該当するファイルまたは関数が使われます。N を指定しないであいまいな名前を指定すると、
er_print
はオブジェクトファイル名の候補を表示します。指定した名前が関数の場合は、関数名がオブジェクトファイル名に付けられ、N の値が示すそのオブジェクトファイルの 番号も出力されます。
source | src {
file|
function} [
N]
- 指定したファイルまたは指定した関数を含むファイルの注釈付きソースコードを出力します。いずれの場合も、指定したパスのディレクトリにファイルが存在する必要があります。
- 省略可能なパラメータ N (1 以上の整数) は、ファイルまたは関数名があいまいな場合にだけ指定します。あいまいな場合は、N 番目に該当するファイルまたは関数が使われます。N を指定しないであいまいな名前を指定すると、
er_print
はオブジェクトファイル名の候補を表示します。指定した名前が関数の場合は、関数名がオブジェクトファイル名に付けられ、N の値が示すそのオブジェクトファイルの 番号も出力されます。標本、スレッド、LWP、ロードオブジェクトの選択コマンド
以下のコマンドは、表示する標本、スレッド、LWP を選択します。
- 情報を表示するロードオブジェクトを選択します。object_spec には、ロードオブジェクトのリストをコンマで区切って指定します (空白文字は指定できません)。オブジェクト名そのものにコンマが含まれている場合は、コンマを二重引用符で囲む必要があります。
- オブジェクト名には、完全パス名またはベース名を指定します。
測定結果のコマンド
以下のコマンドは、測定結果 (メトリック) の仕様キーワードのリストを表示します。
- 測定結果のキーワードのリストを表示します。これらのキーワードは、他のコマンド (
metrics
やsort
など) で指定して、関数リストのさまざまな種類の測定結果を参照することができます。size
、address
、name
以外のキーワードは、e
(排他的)、i
(包含的)、a
(属性付き) のいずれかの文字と、絶対値を示すピリオド (.
) またはプログラムの測定結果全体での割合を示すパーセント記号 (%
) のいずれかと、測定結果を説明する文字列で構成されます。- 属性付き (寄与) 測定結果は、
cmetrics
コマンドのみで指定でき、metrics
コマンドでは指定できません。また、callers-callees
コマンドのみで表示でき、functions
コマンドでは表示できません。表 5-1 に、使用可能な
er_print
の測定結果のキーワードを示します。
- 測定結果のキーワードのリストを表示します。これらのキーワードは、他のコマンド (
metrics
やsort
など) で指定して、呼び出し元と呼び出し先のリストのさまざまな種類の測定結果を参照することができます。size
、address
、name
以外のキーワードは、e
(排他的)、i
(包含的)、a
(属性付き) のいずれかの文字と、絶対値を示すピリオド (.
) またはプログラム全体に占める割合を示すパーセント記号 (%
) のいずれかと、測定結果を説明する文字列で構成されます。
注 - 属性付き測定結果は、cmetrics
コマンドのみで指定でき、metrics
コマンドでは指定できません。また、callers-callees
コマンドのみで表示でき、functions
コマンドでは表示できません。
- 表 5-1 に、使用可能な
er_print
の測定結果のキーワードを示します。出力コマンド
- レポートの最初の n 個のエントリだけに出力するように指定します。n には、1 以上の符号無し整数を指定します。
- 短い関数名と長い関数名のどちらを使うかを指定します (C++ だけで指定できます)。
- 開いている出力ファイルを閉じて、それ以降の出力先として filename で指定したファイルを開きます。
- ファイル名の代わりにダッシュ (
-
) を指定した場合は、出力先は標準出力になります。その他のコマンド
- 現在の実験のアドレス空間データを出力します。
- 現在の実験に関する詳細な情報を出力します。
- ヘルプ情報を出力します。
mapfile
load-object{
mapfilename| - }
- 指定したロードオブジェクトのマップファイルを
mapfilename
で指定したファイルに出力します。ファイル名の代わりにダッシュ (-
) を指定した場合は、出力先は標準出力になります。
- 選択している各標本の概要データを出力します。
er_print
を終了します。
- script で指定したスクリプトのコマンドを実行します。
- 現在の標本セットで収集した実行統計情報を出力します。
{ Version | version }
er_print
のリリース番号を出力します。
サン・マイクロシステムズ株式会社 Copyright information. All rights reserved. |
ホーム | 目次 | 前ページへ | 次ページへ | 索引 |