ここでは、関数情報の表示を制御するコマンドを説明します。
現在選択されているメトリックとともに関数リストを書き込みます。関数リストには、関数を表示するために選択されたロードオブジェクトに含まれているすべての関数、および object_select コマンドで非表示にされた関数を持つロードオブジェクトが含まれます。
出力されるデフォルトのメトリックは、排他的および包括的ユーザー CPU 時間で、秒数および全プログラムのメトリックの割合 (百分率) で示されます。表示する現行メトリックを変更するには、metrics コマンドを使用します。これは、functions コマンドを発行する前に行う必要があります。また、.er.rc ファイル内の dmetrics コマンドを使用して、デフォルト値を変更することもできます。
書き込む行数は、limit コマンドを使用して制限できます (出力を制御するコマンドを参照)。
Java プログラミング言語で書かれたアプリケーションの場合、表示される関数情報は表示モードがユーザー、上級、マシンのどれに設定されているかによって異なります。
「ユーザー」モードでは、各メソッドが名前で示され、インタプリタされたメソッドと HotSpot でコンパイルされたメソッドのデータがまとめて集計されます。また、非ユーザー Java スレッドのデータも抑制されます。
「上級」モードは、HotSpot でコンパイルされたメソッドをインタプリタされたメソッドから切り離します。非ユーザー Java スレッドは抑制しません。
「マシン」モードでは、Java 仮想マシン (JVM) ソフトウェアと突き合わせてインタプリタされた Java メソッドのデータがインタプリタの進行と同時に表示される一方、指定されたメソッドについて、Java HotSpot 仮想マシンでコンパイルされたメソッドのデータが報告されます。すべてのスレッドが表示されます。
3 つのモードすべてにおいて、データは、Java ターゲットによって呼び出された C、C++、または Fortran コードの通常の方法で報告されます。
関数リストに表示するメトリックを指定します。metric-spec には、キーワードの default (デフォルトのメトリック選択を復元します) またはコロンで区切ったメトリックキーワードのリストを指定できます。次に、メトリックリストの指定例を示します。
% metrics i.user:i%user:e.user:e%user
このコマンドを入力すると、er_print ユーティリティーは次のメトリックを表示します。
包括的ユーザー CPU 時間 (秒単位)
包括的ユーザー CPU 時間 (百分率)
排他的ユーザー CPU 時間 (秒単位)
排他的ユーザー CPU 時間 (百分率)
デフォルトでは、.er.rc ファイル内のデフォルトの設定の説明のように、.er.rc ファイルから処理された dmetrics コマンドに基づいたメトリック設定が使用されます。metrics コマンドで明示的に metric-spec を default に設定した場合は、記録するデータに適したデフォルト設定が復元されます。
メトリックがリセットされると、新しいリスト内でデフォルトのソートメトリックが設定されます。
metric-spec を省略した場合は、現在のメトリックの設定が表示されます。
metrics コマンドは、関数リスト用のメトリックを設定するほか、呼び出し元-呼び出し先、データ派生出力、およびインデックスオブジェクトのメトリックを設定します。呼び出し元-呼び出し先メトリックは、関数リストに包括的メトリックまたは排他的メトリックが表示されるメトリックに対応する属性メトリックと、静的メトリックを表示します。
データ領域メトリックは、データが使用可能で、かつ関数リストに包括的メトリックまたは排他的メトリックが表示されるメトリックに対応するデータ領域メトリックと、静的メトリックを表示します。
インデックスオブジェクトメトリックは、関数リストに包括的メトリックまたは排他的メトリックが表示されるメトリックに対応するインデックスオブジェクトメトリックと、静的メトリックを表示します。
metrics コマンドが処理されると、現在有効なメトリックを示すメッセージが表示されます。前述の例では、メッセージは次のようになります。
current: i.user:i%user:e.user:e%user:name
メトリックリストの構文については、メトリックリストを参照してください。指定可能なメトリックを一覧表示するには、metric_list コマンドを使用します。
metrics コマンドに誤りがあった場合、警告とともに無視され、以前の設定が引き続き有効になります。
関数リストを metric-spec でソートします。メトリック名の中の visibility は、ソート順序に影響を及ぼしません。複数のメトリックが metric-spec の中で指定されている場合は、表示可能な最初のものが使用されます。指定されたメトリックに表示可能なものがない場合は、コマンドが無視されます。metric-spec の前に負符号 (-) を付加することにより、逆順のソートを指定できます。
デフォルトでは、.er.rc ファイル内のデフォルトの設定の説明のように、メトリックソート設定は、.er.rc ファイルから処理された dsort コマンドに基づいています。sort コマンドで明示的に metric_spec を default に設定した場合は、デフォルトの設定が使用されます。
文字列 metric-spec は、次の例に示すように、メトリックリストに示すメトリックキーワードの 1 つです。
sort i.user
このコマンドは、er_print ユーティリティーに、関数リストを包括的ユーザー CPU 時間によってソートするよう指示します。指定したメトリックが読み込まれた実験に含まれていない場合は、警告メッセージが表示され、コマンドは無視されます。コマンドが終了すると、ソート基準メトリックが表示されます。
関数リスト内の各関数について、サマリーパネルを出力します。出力するパネル数は、limit コマンドを使用して制限できます (出力を制御するコマンドを参照)。
サマリーメトリックパネルには、関数またはロードオブジェクトの名前、アドレス、およびサイズが表示されます。関数の場合、ソースファイル、オブジェクトファイル、およびロードオブジェクトの名前が含まれます。パネルには、選択した関数またはロードオブジェクトについて、記録された排他的メトリックと包括的メトリックの両方の値とパーセンテージが表示されます。
指定された関数のサマリーパネルを出力します。複数の関数が同じ名前を持つ場合には、オプションのパラメータ N が必要です。指定の関数名を持つ N 番目の関数について、サマリーメトリックパネルが出力されます。コマンド行でコマンドを入力する場合、N を必ず指定する必要があります。不要な場合は無視されます。N が必要であるときに N を使用しないでコマンドを対話的に入力すると、対応する N 値を持つ関数のリストが出力されます。
関数のサマリーメトリックについては、fsummary コマンドの解説を参照してください。