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

出力を制御するコマンド

ここでは、er_print の出力を制御するコマンドを説明します。

outfile { filename | - }

開いている出力ファイルを閉じ、以降の出力先として filename を開きます。filename を開くときに、既存のコンテンツを消去します。filename の代わりにハイフン (-) を指定した場合は、標準出力に出力されます。filename の代わりに 2 つのハイフン (--) を指定した場合は標準エラーへ出力されます。

appendfile filename

開いている出力ファイルを閉じ、filename を開きます。その際、既存のコンテンツがあれば残し、後続の出力がファイルの末尾に付加されるようにします。filename が存在しない場合、appendfile コマンドの機能は outfile コマンドと同じです。

limit n

出力をレポートの最初の n 個のエントリに制限します。n は符号なしの正の整数です。

name { long | short } [ :{ shared_object_name | no_shared_object_name } ]

長短どちらの形式の関数名を使用するかを指定します (C++ および Java のみ)。shared_object_name が指定された場合は、関数名に共有オブジェクト名を付加します。

viewmode { user| expert | machine }

モードを次のいずれかに設定します。

user (ユーザー)

Java 実験の場合は、Java スレッドの Java 呼び出しスタックを表示し、ハウスキーピングスレッドを表示しません。関数リストには、Java 以外のスレッドからの集計時間を表す関数 <JVM-System> が含まれます。JVM ソフトウェアが Java 呼び出しスタックを報告しない場合、時間は関数 <no Java callstack recorded> に報告されます。

OpenMP 実験の場合は、OpenMP を使用せずにプログラムがコンパイルされたときに取得されたものと同様の、再構築された呼び出しスタックが表示されます。また、OpenMP ランタイムが特定の操作を実行しているときは、<OMP-*> という形式の名前を持つ特殊関数を追加します。

expert (上級)

Java 実験の場合は、ユーザーの Java コードの実行中には Java スレッドの Java 呼び出しスタックを表示し、JVM コードの実行中または JVM ソフトウェアが Java 呼び出しスタックを報告しないときにはマシン呼び出しスタックを表示します。ハウスキーピングスレッドについてはマシン呼び出しスタックを表示します。

OpenMP 実験の場合は、コンパイラによって生成された関数を表示します。これらの関数は、ユーザー関数によってユーザーモードで集計される、並列化されたループやタスクなどを表します。また、OpenMP ランタイムが特定の操作を実行しているときは、<OMP-*> という形式の名前を持つ特殊関数を追加します。

machine (マシン)

Java 実験と OpenMP 実験の場合は、すべてのスレッドのマシン呼び出しスタックを表示します。

Java 実験と OpenMP 実験を除くすべての実験の場合は、3 つのモードすべてに同じデータを表示します。

compare { on | off }

比較モードをオンまたはオフに設定します。デフォルトでは、値はオフなので、同じ実行可能ファイルの複数の実験が読み込まれると、そのデータは集計されます。.er.rc ファイルで compare on と設定して比較モードを有効にした状態で、同じ実行可能ファイルの複数の実験が読み込まれると、各実験データについて、メトリックスが別々の列に表示されます。er_print compare コマンドを使って、実験を比較することもできます。

比較モードでは、実験または実験グループのデータは、「関数」リスト、「呼び出し元 - 呼び出し先」リスト、「ソース」リスト、および「逆アセンブリ」リストで、隣接列に表示されます。列は、実験または実験グループの読み込み順に表示され、追加のヘッダー行に実験名または実験グループ名が示されます。