ここでは、er_print の出力を制御するコマンドを説明します。
開いている出力ファイルを閉じ、以降の出力先として filename を開きます。filename を開くときに、既存のコンテンツをクリアします。filename の代わりにハイフン (-) を指定した場合は、標準出力に出力されます。filename の代わりに 2 つのハイフン (--) を指定した場合は標準エラーに書き出されます。
開いている出力ファイルを閉じ、filename を開きます。その際、既存のコンテンツがあれば残し、後続の出力がファイルの末尾に付加されるようにします。filename が存在しない場合、appendfile コマンドの機能は outfile コマンドと同じです。
すべての出力をレポートの最初の n 個のエントリに制限します。n は符号なしの整数です。n がゼロの場合、すべての制限を削除します。n が省略されている場合は、現在の制限を出力します。
長短どちらの形式の関数名を使用するかを指定します (C++ および Java のみ)。shared-object-name が指定されている場合は、関数名のあとに共有オブジェクト名を付加します。
モードを次のいずれかに設定します。
Java 実験の場合は、Java スレッドの Java 呼び出しスタックを表示し、ハウスキーピングスレッドを表示しません。関数リストには、Java 以外のスレッドからの集計時間を表す関数 <JVM-System> が含まれます。JVM ソフトウェアが Java 呼び出しスタックを報告しない場合、時間は関数 <no Java callstack recorded> に報告されます。
OpenMP 実験の場合は、OpenMP を使用せずにプログラムがコンパイルされたときに取得されたものと同様の、再構築された呼び出しスタックが表示されます。また、OpenMP ランタイムが特定の操作を実行しているときは、<OMP-*> という形式の名前を持つ特殊関数を追加します。
Java 実験の場合は、ユーザーの Java コードの実行中には Java スレッドの Java 呼び出しスタックを表示し、JVM コードの実行中または JVM ソフトウェアが Java 呼び出しスタックを報告しないときにはマシン呼び出しスタックを表示します。ハウスキーピングスレッドについてはマシン呼び出しスタックを表示します。
OpenMP 実験の場合は、コンパイラによって生成された関数を表示します。これらの関数は、ユーザー関数によってユーザーモードで集計される、並列化されたループやタスクなどを表します。また、OpenMP ランタイムが特定の操作を実行しているときは、<OMP-*> という形式の名前を持つ特殊関数を追加します。OpenMP 実行時コード libmtsk.so からの関数は抑制されます。
Java 実験と OpenMP 実験の場合は、すべてのスレッドの実際のネイティブ呼び出しスタックを表示します。
Java 実験と OpenMP 実験を除くすべての実験の場合は、3 つのモードすべてに同じデータを表示します。
比較モードを、オフ (compare off、デフォルト)、オン (compare on)、デルタ (compare delta)、または比率 (compare ratio) に設定します。比較モードがオフである場合は、複数の実験が読み取られると、それらのデータは集約されます。比較が有効になっている場合は、複数の実験がロードされたときに、各実験のデータに関するメトリックの個別の列が表示されます。比較モードがデルタである場合、ベース実験には絶対メトリックが表示されますが、比較実験にはベースとの間の差分が表示されます。比較モードが比率である場合、比較実験にはベースとの間の比率が表示されます。
比較モードでは、それぞれの実験または実験グループを別の比較グループとして扱います。最初の実験または実験グループ引数が、ベースグループです。複数の実験を比較グループに含める場合は、実験グループファイルを作成して、er_print への単一の引数として使用する必要があります。
string から出力モードを設定します。string が text である場合、出力は表形式で実行されます。string が 1 文字である場合、出力は、その 1 文字を区切り文字として区切られたリストとして実行されます。string が html である場合、出力は HTML 表の形式になります。その他の string はすべて無効であり、そのコマンドは無視されます。
printmode 設定は、functions、memobj、indxobj など、表を生成するコマンドに対してのみ使用されます。この設定は、source や disassembly などのほかの出力コマンドでは無視されます。