tprof コマンド

目的

プロセッサーの使用状況を報告します。

構文

TPRof { [ 「-c」 ] [ -C { すべて | クプリスト }] [ -d 年 ] -D ] [ -e (E) ] [ -@ {すべて | WPAR リスト }] [ { -E (E) [ モード [ -b ] [ -B ] } ]] [ 「-f」 頻度 ]] [ -F (R) ] [-I (I)] [ -j (J) ] [ -k (K) ] [ - ] [-L オブジェクト・リスト] [ -m (M) オブジェクト・リスト ] [ -M (M) ソース・パス・リスト ] [-N (N)] [ P- プロセス・リスト ] [ -P { すべて | ピドリスト }] [ -s ] [ -S (S) 検索パス・リスト ] [ T ] [ -T (T) バッファー・サイズ ] [ -ウー ] [ -v (V) ] [ V 値 verbosefilename ] [-] [-G "開始 = mmddhhmmssyy",end=mmddhhmmssyy] [-O (O) オプション]{ [-z] [-Z] | -R } {{ - ルート・ストリング } | {[ -A { すべて | クプリスト } [ N ]] [ - ルート・ストリング [ -X (X) [ 時間データ [, バケット= N]]]] { -x (X) プログラム | -y (Y) プログラム }}} { -a 値 [ -A [all]] [ 「-f」 頻度 ] [ -F (R) ] [ -v (V) ] [ -z ] [ V 値 verbosefilename ] [ -T (T) バッファー・サイズ ] {{[ - ルート・ストリング ] -y (Y) プログラム } | { - ルート・ストリング } }
注:
  • リスト・タイプの入力はすべてコンマで区切りますが、pathlist だけは コロンで区切ります。
  • リアルタイム・モードで実行されている間、マルチ CPU プロファイル作成モードは自動的に使用不可になります。
  • プロセッサーごとのプロファイル作成をオンにすると、マイクロプロファイル作成は 自動的に使用不可になります。
  • 指定されたログ・バッファー・サイズは、tprof コマンドがリアルタイム・モードで実行する場合は省略されます。
  • -x フラグを指定して、-A フラグ を指定しないと、tprof はリアルタイム・モードで実行します。
  • -x フラグと -A フラグを組み合わせて 使用すると、tprof は自動オフライン・モードで実行します。
  • -x フラグを省略する と、tprof は、cooked ファイルと -F フラ グがあるかないかにより、ポストプロセッシング・モードまたは手動オフライン・モード で実行します。
  • -@ フラグは、 tprof コマンドが ワークロード・パーティション でリアルタイム・モードまたは自動オフライン・モードで実行されると、自動的に使用不可になります。
  • -y フラグは、-E フラグまたは -a フラグとのみ同時に使用できます。
  • -O showaddrbytes=on オプションを -z オプションと一緒に使用することはできません。
  • -O wrapfname=on オプションは、-l オプションと一緒に使用してください。
  • -G オプションは、ポストプロセッシング・モードでのみ使用できます。
  • -O pdetails=on オプションは、-p オプションと一緒にのみ使用できます。
  • tprof ポストプロセッシング・モードで、-A オプションを使用してトレースを手動で収集する場合は、必ず trace コマンドの -pP オプションと I オプションを指定する必要があります。

説明

tprof コマンドは個別のプログラムおよびシステム全体におけるプロセッサーの使用状況について報告します。 このコマンドは、プロセッサー制約の可能性があり、プログラムのどのセクションがプロセッサーを最も頻繁に使用しているかを知りたい、Java™、C、C++、または FORTRAN プログラムを使用するすべてのユーザーにとって便利なツールです。

tprof コマンドを使用すると、オブジェクト・ファイル、プロセス、スレッド、 サブルーチン (ユーザー・モード、カーネル・モード、共有ライブラリー)、およびプログラム のソース行や個別命令に対して、プロセッサー時間をチャージできます。 プロセッサー時間を サブルーチンにチャージすることをプロファイル作成、プロセッサー時間をソース・プログラ ム行にチャージすることを、マイクロプロファイル作成と呼びます。

サブルーチン・レベルのプロファイル作成の場合は、ユーザーは実行可能なプログラムを 変更することなしに tprof コマンドを実行できます。 つまり、特殊なコンパイラー・フラグを使用して再コンパイルする必要はありません。 トレースバック・テーブルも削除した場合を除き、実行可能プログラムを削除した場合も同様です。 ただし、リスト作成ファイルが既に使用可能に なっている場合を除き、マイクロプロファイルを獲得するには再コンパイルが 必要です。 プログラム上でマイクロプロファイル作成を実行するには、-g フラグを指定してプログラムをコンパイルし、tprof コマンドからソース・ファイルにアクセスできるようにするか、-qlist フラグを指定してプログラムをコンパイルし、tprof コマンドからオブジェクト・リスト作成ファイルとソース・ファイルの両方、またはオブジェクト・リスト作成ファイルだけにアクセスできるようにします。 tprof のマイクロ プロファイル作成機能のすべてを利用するには、.lst とソース・ ファイルの両方を提供してください。

tprof コマンドは、次のモードで実行できます。
  • リアルタイムまたはオンライン
  • 手動オフライン
  • 自動オフライン
  • ポストプロセッシング
-x フラグを指定して、-A フラグを指定しないと、tprof コマンドはリアルタイム・モードで実行されます。 リアルタイム・モードでは、tprofコマンドはバックグラウンドでAIX® トレース・ユーティリティを起動し、生成されたトレース・データを処理します。 プロファイル作成の対象となっているプログラムが終了すると、tprof がシンボル名情報を収集して、tprof レポートを生成します。
注: このモードでは、プロセッサーごとのプロファイル作成は許可されません。
-x フラグと -A フラグを指定すると、tprof コマンドは自動オフライン・モードで実行されます。 このモードでは、 tprof コマンドは AIX trace ユーティリティーを開始し、トレース・データをファイルに記録します。 トレース・データの収集が完了すると、シンボル名情報を収集し、tprof コマンドがトレース・ログ・ファイルを開いて、データの処理を行い、レポートを生成します。 このモードでは、 tprof コマンドは、tprof レポート・ファイルのほかに以下のファイルを生成します。
  • rootstringsyms
  • rootstringtrc [-cpuid]

tprof コマンドが使用する入力ファイルとレポート・ファイルは、すべて rootstring.suffix の名前が付きます。ここで rootstring は、-r フラグで指定するか、-x フラグによって指定されるプログラム名になります。

リアルタイム・モードおよび自動オフライン・モードでは、プロファイルを作成するプログラムのデータ域の ulimit 値は unlimited に設定されます。

自動オフライン・モードでは、-N フラグを指定して、生成された RootString.syms ファイル内にソース行情報を収集することができます。 さらに、-I フラグを指定して、バイナリー命令を生成された RootString.syms ファイル内に収集することができます。

tprof コマンドでは、以上のファイルについて任意の時点で再処理を 実行して、プロファイル・レポートを生成することができます。 これは 手動オフライン・モードと呼びます。 rootstring.syms ファイルには、gensyms コマンドの出力と同様のシンボル名情報が組み込まれます。 rootstring.trc[-cpuid] ファイルはトレース・ログ・ファイルです。 プロセッサーごとのトレース をオンにすると、-cpuid が追加されます。 この場合、 ファイルごとにそれぞれ 1 台だけのプロセッサーのトレース・データが入ります。

-c フラグと -A フラグを同時に指定した場合、rootstring.syms ファイルと rootstring.trc[-cpuid] ファイルは生成されません。 その代わりに、 次の 2 つのファイルが作成されます。
  • ルートストリング.csyms
  • ルート文字列.ctrc [ -cpuid ]
以上のファイルはクックド・ファイルです。 つまり、通常のトレース・ファイルと名前ファイルをプリプロセスしたバージョンのファイルです。 tprof ポストプロセスは、ファイルをより速くクックしました。
-A フラグと -x フラグを両方とも指定しない場合、tprof コマンドは手動オフラインまたはポストプロセッシング・モードで実行されます。 tprof コマンドをポストプロセッシング・モードで実行するには、以下のファイルが必要です。
  • ルートストリング.csyms
  • ルート文字列.ctrc [ -cpuid ]

これらのファイルは、-c フラグを指定して (ポストプロセッシング以外の任意のモードで) tprof コマンドを実行すると生成されます。

tprof コマンドを手動オフライン・モードで実行するには、以下のファイルが必要です。
  • ルートストリング.syms
  • ルートストリング.trc [-cpuid]

これらのファイルを生成するには、 gensyms コマンドと AIX トレース機能を手動で実行する必要があります。 または、 -c フラグを指定せずに tprof コマンドを自動オフライン・モードで実行します。

tprof コマンドは、常に rootstring.csyms ファイルと rootstring.ctrc[-cpuid] ファイルを最初に検索します。 これらのファイルが見つからない場合にのみ、rootstring.syms ファイルと rootstring.trc[-cpuid] ファイルを検索します。 tprof コマンドが rootstring.csyms ファイルと rootstring.ctrc[-cpuid] ファイルを検索しないようにするには、つまり手動オフライン・モードを強制するには、-F フラグを使用します。

入力シンボル・ファイルにデマングル名が入っている場合は、-Z フラグを使用できません。

tprof コマンドは、rootstring.prof という名前の tprof レポート・ファイルを生成します。これには、プロセス、スレッド、オブジェクト・ファイル、およびサブルーチンの各レベルのプロファイル・レポートが含まれます。 このファイルには、以下のセクションとサブセクションを組み込むことができます。
  • 要約報告書セクション:
    • プロセス名別プロセッサー使用率の要約
    • スレッド別プロセッサー使用率の要約 (tid)
  • グローバル (システム上のすべてのプロセスの実行に関連する) プロファイル・セクション:
    • ユーザー・モード・ルーチンのプロセッサー使用率
    • カーネル・モードで呼び出されるミリコード・ルーチンを含む、カーネル・ルーチンのプロセッサー使用率
    • カーネル・エクステンションのプロセッサー使用率の要約
    • カーネル・エクステンションのサブルーチンごとのプロセッサー使用率
    • 専用にロードされた、グローバルな名前付き共有ライブラリー、およびユーザー・モードで呼び出されたミリコード・ルーチンのプロセッサー使用率の要約
    • 共有ライブラリーのサブルーチンごとのプロセッサー使用率
    • 各 Java クラスのプロセッサー使用率
    • 各 Java クラスの各 Java メソッドのプロセッサー使用率
  • プロセスおよびスレッド・レベルのプロファイル・セクション (プロセスまたはスレッドごとに 1 つのセクション):
    • このプロセス/スレッドに対するユーザー・モード・ルーチンのプロセッサー使用率
    • カーネル・モードで呼び出されるミリコード・ルーチンを含む、このプロセス/スレッドに対するカーネル・ルーチンのプロセッサー使用率
    • このプロセス/スレッドに対するカーネル・エクステンションのプロセッサー使用率要約
    • このプロセス/スレッドに対する各カーネル・エクステンションのサブルーチンのプロセッサー使用率
    • このプロセス/スレッドに対する、専用にロードされた、グローバルな名前付き共有ライブラリー、 およびユーザー・モードで呼び出されたミリコード・ルーチンのプロセッサー使用率の要約
    • このプロセス/スレッドに対する各共有ライブラリーのサブルーチンのプロセッサー使用率
    • このプロセス/スレッドの各 Java クラスのプロセッサー使用率
    • このプロセス/スレッドの各 Java クラスの Java メソッドのプロセッサー使用率
rootstring.prof レポート・ファイルには、常に要約報告書のセクションがあります。 以下のプロファイル作成フラグを使用して、グローバル・プロファイル・セクションの各サブセクションをオンまたはオフに設定できます。
  • -u は、サブセクション a をオンにします。
  • -k は、サブセクション b をオンにします。
  • -e は、サブセクション c と d をオンにします。
  • -s は、サブセクション e と f をオンにします。
  • -j は、サブセクション g と h をオンにします。

-p-P、および -t フラグを指定すると、プロセスおよびスレッドに対してプロファイル・レベルとスレッド・レベルのプロファイル・セクションが作成されます。 プロセスごとおよびスレッドごとのセクションの サブセクションは、グローバル・セクションのサブセクションと同じものです。 このサブセクションは、プロファイル作成フラグ (-u-s-k-e-j) を使用して選択されます。

オプションで、-C フラグを指定して tprof コマンドを実行すると、このコマンドはプロセッサーごとのプロファイル・レポートを生成します。このレポートにはプロセッサーごとの 1 つのプロファイル・レポートが含まれています。 生成される tprof レポートは同じ構造で、次の規則を使用して名前が付けられます。rootstring.prof[-cpuid]。

-m フラグを指定すると、tprof コマンドはマイクロプロファイル・レポートを生成します。 このレポートでは次の命名規則が使用されます。 rootstring.source.mprof。ここで、source はソース・ファイルのベース名です。 複数のソース・ファイルに同一のベース名がある場合は、それらを固有に識別するためにレポート・ファイル名に 1 つの番号が付けられます。 例えば、rootstring.Filename.c.mprof-1。 マイクロ プロファイル・レポートには次の情報があります。
  • 注釈付きソース・ファイルの絶対パス名。
  • ホット・ライン・プロファイル・セクション。ここには、プロセッサー使用率でソー トして、プロファイル・サンプルで一致したソース・ファイルのすべての 行番号が含まれます。 ソース行ごとに、プロセス合計で使用した経過時間パーセント値 が 1 行に表示され、この後にプロセスごとの詳細を表示する行が続きます。
  • プロセッサー使用率があるソース・ファイルの各機能に関するソース行プロファイ ル・セクション。 このセクションには、ソース行番号、プロセッサー使用率、および ソース・コードが含まれます。 そのソース・ファイルの .lst ファイルが tprof からアクセスできる場合は、.lst ファイルの命令行とソース・ファイルのソース行を組み合わせて、プロセッサー使用率を正しくチャージします。 これにより、各ソース・ファイルについて、命令別の詳細が提供されます。

    ソース・ファイルがなく、.lst ファイルがある場合 は、tprof は、ソース行と .lst ファイルの命令に 基づいて、プロセッサー使用率だけを表示します。

    .lst ファイルもソース・ファイルも存在しないが、ソース・ファイルが -g フラグを指定してコンパイルされている場合、tprof コマンドはソース行番号を取り出して、ソース・コードの列がない、同様のレポートを生成します。
    注: プロセッサーごとのプロファイル作成が要求された場合、マイクロ・プロファイル作成は自動的に無効になります。 .c ファイルが別の .c ファイルに含まれている場合、tprof コマンドは正しいソース行情報を報告できません。 tprof コマンドは、Java クラスまたはメソッドのマイクロプロファイルを作成できません。

-m フラグを指定すると、-N フラグが自動的に指定され、ソース行情報が自動オフライン・モードでシンボル・ファイルに集められます。

-Z フラグを -m フラグと一緒に指定すると、サブルーチンごとに 1 つのレポート・ファイルが生成されます。 命名規則 RootString.source.routine.mprofが使用されます。ここで、 routine は、ソース・ファイルにリストされているサブルーチンの 1 つの名前です。 さらに、上記のホット・ライン・プロファイル情報を含む RootString.source.HOT_LINES.mprof という名前のファイルも作成されます。

-L フラグを指定すると、 tprof コマンドは注釈付きリスト・ファイルを生成します。 ファイルは、 RootString.source.alstという命名規則を使用します。ここで、 source はソース・ファイルのベース名です。 複数のソース・ファイルに同一のベース名がある場合は、それらを固有に識別するためにレポート・ファイル名に 1 つの番号が付けられます。 例えば、 RootString.Filename.c.alst-1です。 -Z フラグを -L フラグと一緒に指定すると、サブルーチンごとに 1 つのレポート・ファイルが生成されます。 次に、 RootString.source.routine.alstという命名規則が使用されます。ここで、 routine は、ソース・ファイルにリストされているサブルーチンの 1 つの名前です。

JPA を使用して Java プログラムのプロファイルを作成するときに -N フラグまたは -I フラグを指定した場合 (-x java -Xrunjpa または -x java -agentlib:jpa)、 JIT ソース行番号と命令は、対応するパラメーターが -Xrunjpa フラグ または -agentlib:jpa フラグに追加された場合に収集できます。
  • source=1は、JIT ソース行収集を有効にします(IBM®JRE1.5.0 またはそれ以降のバージョンが必要です)。
  • instructions=1 は、JIT 命令の収集をオンにします。
次の制約事項が、tprof コマンドを実行する non-root ユーザーに適用されます。
  • tprof は、実行中のカーネルが /unix ファイルと同じであることを検査できません。 これは、 警告メッセージが表示される場合でも、ほとんどの場合、 実行中のカーネルと /unix が同じであるために、 データは正確でなければならないことを意味します。
  • gensyms コマンドが root 以外のユーザーによって実行される場合、制約事項 #1 (上記) と同じ警告が出され、gensyms ファイルにマークが付けられます。 tprof がオフライン・モードで実行される場合は、gensyms > コマンドにより作成されたファイルには、未検査カーネルに関して tprof のフラグが立てられます。
  • tprof は、読み取り許可が設定されていないファイルのシンボルを開き、読み取ることができません。 専用の共有ライブラリーの中には読み取り許可が設定されていないものがあり、カーネル・エクステンションの中には読み取り不可のものがあります。

時間ベース・プロファイル作成とイベント・ベース・プロファイル作成

デフォルトでは、 tprof は時間ベースであり、デクリメンター割り込みによって駆動されます。 もう 1 つのプロファイル作成モードはイベント・ベースです。この場合、割り込みはソフトウェア・ベース・イベントまたはパフォーマンス・モニター・イベントによって発生します。 イベント・ベースのプロファイル作成では、サンプリング頻度とプロファイル作成イベントをコマンド・ラインで変更することができます。

-E フラグは、イベント・ベースのプロファイル作成を有効にします。 -E フラグは、4 つのソフトウェア・ベース・イベント (EMULATION、ALIGNMENT、ISLBMISS、DSLBMISS) またはパフォーマンス・モニター・イベント (PM_ *) の 1 つです。 デフォルトでは、プロファイル・イベントはプロセッサー・サイクルです。 すべてのパフォーマンス・モニター・イベントにはプレフィックス PM_ が付きます。例えば、プロセッサー・サイクルの場合は PM_CYC、完了済みの命令の場合は PM_INST_CMPL です。 pmlist は、プロセッサーでサポートされるすべてのパフォーマンス・モニター・イベントをリストします。 選択したパフォーマンス・モニター・イベントは、 PM_RUN_INST_CMPL パフォーマンス・モニター・イベントも検出できるグループで取得する必要があります。 POWER4 以降のプロセッサーでは、マークされたイベントのプロファイル作成により、精度が向上します。 マークされたイベントには、PM_MRK_ prefix があります。

-y フラグを指定すると、指定されたプログラムとその子孫のプロファイルのみが作成されます。 -y フラグは、-E または -a フラグのみと同時に使用します。

-f フラグは、イベント・ベースのプロファイル作成のサンプリング頻度を変更します。 ソフトウェア・ベース・イベントおよびプロセッサー・サイクルの場合、サポートされる頻度の範囲は 1 から 500 ミリ秒で、デフォルトは 10 ミリ秒です。 それ以外のすべてのパフォーマンス・モニター・イベントの場合、サポートされる範囲は、10000 回から MAXINT 回のイベント発生回数で、デフォルトは 10000 回です。 -f フラグと -y フラグを同時に指定すると、その他のパフォーマンス・モニター・イベントのサンプリング頻度の範囲は 1 回から MAXINT 回の発生回数となり、デフォルトは 10000 回のイベントとなります。

プロセッサー名、プロファイル・イベント、およびサンプリング頻度を反映するために、 .prof ファイルに追加情報が追加されました。

Java アプリケーション・プロファイル

Java アプリケーションのプロファイルを作成するには、 -j フラグを指定する必要があります。 さらに、 -Xrunjpa API (Java 5 以前の JVM で実行する場合) または java コマンド行オプションの -agentlib:jpa (Java 6 JVM で実行する場合) を使用してアプリケーションを開始します。 このオプションを指定すると、JVM は新規クラスおよびメソッドがメモリーにロードされるたびに、自動的に jpa ライブラリーを呼び出します。 ライブラリーは、 /tmp/JavaPID.symsという名前のファイルにあるメソッドおよびクラスの名前マッピング情報のアドレスを収集します。ここで、 PID は、Java 仮想マシンを実行しているプロセスのプロセス ID です。 tprof コマンドは、上記のディレクトリーでそれらのファイルを自動的に検索します。

自動オフライン・モードで実行されている場合、または cooking フラグを選択している場合は、tprof コマンドは JavaPID.syms ファイルに含まれている情報を RootString.syms ファイルまたは RootString.csyms ファイルにコピーします。 ここで、/tmp 内の対応するファイルは削除できます。 ディレクトリーの内容は、tprof コマンドのユーザーが最新状態に保持する必要があります。 特定の JavaPID.syms に対応する JVM が停止すると、ファイルをそのつど削除する必要があります。

プロファイルの精度

プロセッサー・アクティビティーが分析される度合いは、収集したサンプルの数とホット・スポット が占める割合によって決まります。 プログラムのホット・スポットの数が少なければ、比較的少量のサンプルでプロファイルを作成できますが、プログラムの実行頻度の低い部分については、サンプルの収集量を増やさない限り、プロファイル・レポートには表示されません。 ユーザー・プログラムを 1 分未満しか実行しないような場合であれば、信頼できる概算を得るには不十分な精度である可能性があります。

簡単な解決法の 1 つは必要とする精度が得られるまで繰り返しユーザー・プログラムまたはスクリプトを実行することです。 つまり、プログラムを長く実行すればそれだけプロファイルの精度が詳細になります。 プロファイルの精度が信頼できない場合は tprof コマンドを何回か実行して、それぞれのプロファイルの結果を比較してみてください。

情報

-@ フラグは、 tprof レポートへの WPAR 情報の追加を制御します。 サブオプションは、レポート・セクションのいくつかに組み込まれる情報を指定します。これらのサブオプションの形成は、以下のいずれかです。
  • -@ フラグのみ (つまり、サブオプションなし) を指定すると、プロセッサー使用 WPAR 名の要約が追加されます。 また、プロセスごとおよびスレッドごとのプロセッサー使用量を要約するセクションにリストされているプロセスごとに、 WPAR 名が表示されます。
  • ALL サブオプションを指定すると、 tprof レポートには、システム全体および実行中の WPARごとに、プロセス、スレッド、オブジェクト・ファイル、およびサブルーチン・レベルのプロファイル・レポートが含まれます。
  • WPAR 名のコンマ区切りリストは、 tprof レポートの名前付き WPAR ごとに、プロセス、スレッド、オブジェクト・ファイル、およびサブルーチン・レベルのプロファイル・セクションになります。
注: WPAR をチェックポイントとして使用して再始動すると、一部の共有ライブラリー領域が WPARに対してローカルになる場合があります。 この場合、 WPAR の名前は、領域 myarea@mywparの名前の後に出力されます。 それ以外の場合はすべて、領域は system-wide; であるため、 WPAR 名は省略されます。

XML レポート生成

-X フラグは、RootString.etm という XML レポート・ファイルを生成します。 このファイルは、ビジュアル・パフォーマンス・アナライザー内に表示できます。 XML レポート・ファイルには、以下の 4 つのセクションが含まれています。
  • プロファイル一般情報
  • シンボル・データ
  • プロファイル階層
  • 一時データ

-X は、XML レポートを直接生成する場合に、自動化オフライン・モードで使用されます。

-X は、RootString.syms および RootString.trc ファイルから XML レポートを生成する場合に、手動オフライン・モードでも使用されます。

-X timedata が指定されると、生成された XML レポートに時刻データ情報が組み込まれます。 デフォルトでは、時刻データ生成機能はオフになっています。

時刻データのバケット数を指定する場合は、buckets=N 引数を使用します。 デフォルトのバケット数は 1800 です。

ページ・ページ分析

tprof -a コマンドは、代表的なコマンド実行からプロファイル・トレースを収集して、パフォーマンス予測を作成します。 この予測では、アプリケーションのデータ・スペースのさまざまな部分がさまざまなページ・サイズにマップされます。 ラージ・ページ分析ではトレースの情報を使用して、コマンドが次のいずれかのアプリケーション・メモリー領域をさまざまなページ・サイズにマップする際の変換バッファー・パフォーマンスを予測します。
  • 静的アプリケーション・データ・データ (初期化されているデータまたは初期化されていないデータ)
  • アプリケーション・ヒープ (動的に割り当てられているデータ)
  • スタック
  • アプリケーション・テキスト
パフォーマンス予測は、オペレーティング・システムでサポートされるそれぞれのページ・サイズについて提供されます。 最初のパフォーマンス予測は、すべてのメモリー領域をデフォルトのページ・サイズである 4KB にマップするベースライン予測です。 その後の予測では、1 回に 1 つの領域が異なるページ・サイズにマップされます。 それぞれの予測では、以下の統計が報告されます。
  • ページ・サイズ
  • すべての領域をバックアップするのに必要なページ数
  • 変換ミスのスコア
  • コールド変換のミス・スコア
要約セクションにはプロファイルが作成されるプロセスと、報告が行われる統計がリストされます。 この要約には以下の情報が含まれます。
  • メモリー参照の数またはパーセンテージ
  • モデルとなるメモリー参照
  • Malloc 呼び出し
  • フリー呼び出し

データ・プロファイル作成

tprof -b コマンドは基本のデータのプロファイル作成をオンにして、データ・アクセス情報を収集します。 要約セクションはそれぞれのプロセスのカーネル・データ、ライブラリー・データ、ユーザー・グローバル・データ、およびスタック・ヒープのセクション全体にわたるアクセス情報を報告します。

-b フラグと -s-u-k、および -e フラグを同時に指定すると、tprof コマンドのデータ・プロファイル作成は、共有ライブラリー、バイナリー、カーネル、およびカーネル・エクステンションで最も使用頻度の高いデータ構造 (エクスポートされたデータ・シンボル) を報告します。 -b フラグもこれらのデータ構造を使用する機能を報告します。

tprof Versus prof と gprof の比較

この 3 つのコマンドの最も大きな違いは、tprof が プロファイル作成中のプログラムに対して実行時間に対する影響を与えずにデータを 収集し、マイクロプロファイル・レポートを生成することを除いて、 再コンパイルをせずに、最適化され、かつストリップしたバイナリーで作業できることです。 gprofprof は、いずれもマイクロプロファイル作成機能を備えておらず、最適化されたバイナリーに対しても機能しませんが、これらは特殊なコンパイル・フラグを必要とするため、場合によっては実行時間の大幅なスローダウンが生じます。 prof は、ストリップされたバイナリーでは機能しません。

profツールとgprofツールは、このオペレーティング・システムを含む多くのUNIXシステムで標準的にサポートされているプロファイリング・ツールである。 prof および gprof はともに、サブプログラムのプロファイル作成と、すべてのサブプログラムが呼び出された回数の正確なカウント値を提供します。 gprof コマンドはまた呼び出しグラフ という非常に便利な機能も備えており、この機能によって特定の親による各サブプログラムの呼び出し回数と各サブプログラムの子の呼び出し回数が表示されます。 tprof コマンドにはサブプログラムの呼び出しカウントも、呼び出しグラフ情報のいずれもありません。

tprof コマンドと同様に、profgprof の 両方のコマンドとも、ユーザー・プログラムのプログラム・カウンターを サンプリングして、各サブプログラムのプロセッサー推定使用量を獲得します。

tprof は、全システムのプロセッサー使用率情報を収集します が、一方 profgprof は、 ユーザー・モードで使用されている期間だけ、1 つのプログラム に対して、プロファイル情報だけを収集します。 tprof は、プロファイル作成されたユーザー・プログラムを実行中に、 活動化されているすべてのプロセスについても要約を提供し、ライブラリーとカーネル・ モードのプロファイル作成を完全にサポートします。

tprof は、Java アプリケーションのプロファイル作成をサポートします。 prof および gprof はサポートしません。

フラグ

項目 説明
-@ { ALL | wparlist } 生成されるレポートに WPAR 情報を組み込みます。

ALL オプションには、すべての WPARの要約が含まれます。 このオプションが設定されている場合、レポートには「SYSTEM」レポートと、トレースされた WPAR ごとのレポートが含まれます。

wparlist オプションは、 WPARのコンマ区切りリストを指定します。 wparlist オプションが設定されている場合、 tprof コマンドは指定された WPAR ごとにレポートを作成します。

-a ラージ・ページ分析をオンにします。
-A { すべて | cpulist } 自動オフライン・モードをオンにします。 プロセッサーごとのトレースをオフにする 引数はありません。 all を使用すると、 すべてのプロセッサーのトレースをオンにします。 cpulist は、トレース対象となるプロセッサー ID のコンマ区切りのリストです。
-b 基本データ・プロファイル作成をオンにします。
-B 命令アドレスのマップされた機能に関する情報で基本データ・プロファイル作成をオンにします。
-c cooked ファイルの生成をオンにします。
-C all | cpulist プロセッサーごとのプロファイル作成をオンにします。 all を指定すると、 すべてのプロセッサーについてプロファイル・レポートを生成します。 cpulist を指定する場合は、プロセッサー番号をコンマで区切ります (例えば、0,1,2)。
注: プロセッサーごとのプロファイル作成は、プロセッサーごとのトレースがオン (自動オフライン・モード) であるか、または使用された (手動オフライン・モード) 場合にのみ可能です。 オンライン・モードでは実行できません。 このオプションは、トレースされる CPU の数が 128 個より多い場合はサポートされません。
-d 据え置きトレース・モードをオンにします。 このモードでは、trcon が呼び出されるまで、データ収集が 据え置かれます。
-D 詳細プロファイル作成をオンにします。 サブルーチンごとに命令オフセット別にプロセッサー使用率を表示します。
-e カーネル・エクステンション・プロファイル作成をオンにします。
-E [ モード ] イベント・ベースのプロファイル作成を可能にします。 使用できるモードは以下のとおりです。
PM_イベント
プロファイルを作成するハードウェア・イベントを指定します。 -E フラグにモードを指定しない場合、デフォルトのイベントはプロセッサー・サイクル (PM_CYC) です。
EMULATION
エミュレーション・プロファイル作成モードを使用可能にします。
ALIGNMENT
調整プロファイル作成モードを使用可能にします。
ISLBMISS
命令セグメント索引バッファー・ミス・プロファイル作成モードを使用可能にします。
DSLBMISS
データ・セグメント索引バッファー・ミス・プロファイル作成モードを使用可能にします。
-f frequency サンプリング頻度を指定します。 サンプリング頻度は、プロセッサー・サイクルおよび EMULATIONALIGNMENTISLBMISSDSLBMISS イベントの場合は 1 から 500 ミリ秒に設定でき、その他のパフォーマンス・モニター・イベントの場合は、イベント発生回数で 10000 回から MAXINT 回までに設定できます。 -f フラグと -y フラグを同時に指定すると、その他のパフォーマンス・モニター・イベントに対するサンプリング頻度の値の範囲は 1 回から MAXINT 値の発生回数となり、デフォルト値は 10000 回のイベントとなります。
-F cooked ファイルが既に存在している場合は、このファイルを上書きし ます。 -x フラグを付けずに使用すると、 手動オフライン・モードを強制します。
-g シンボル名を人間が読める名前に変換しないでください。
-G トレース処理の開始日と終了日を設定します。 パラメーターは、以下のフォーマットで指定します。
"start=mmddhhmmssyy,end=mmddhhmmssyy"
ここでmmddhhmmssyy月、日、時、分、秒、および年です。 このオプションには、以下の値を指定できます。
start
これを設定すると、指定した開始日ストリングからトレース処理が開始されます。
終了
これを設定すると、指定した終了日ストリングにトレース処理が停止します。
-I バイナリー命令収集をオンにします。
注: 自動オフライン・モードでシンボル・ファイルまたはクックド・シンボル・ファイルを生成すると、 -I フラグがアクティブになり、バイナリー命令が収集されます。 ただし、手動オフライン・モードでは、-I フラグはレポート・ファイルに影響しません。
-j Java クラスおよびメソッドのプロファイル作成をオンにします。
-k カーネル・プロファイル作成を使用可能にします。
-l ロング・ネームのレポートを使用可能にします。 デフォルトで は、サブルーチン名、プログラム名、およびソース・ファイル名がプロファイル・ レポートのスペースに入りきらない場合は、tprof がこれらを 切り捨てます。 このフラグは、切り捨てを使用不可にします。
-L オブジェクト・リスト コンマ区切りリスト objectlist によって指定されたオブジェクトのリスト注釈を使用可能にします。 実行可能プログラムと共有ライブラリーでは、それぞれのリスト・ファイルに注釈を付けることができます。 ライブラリーのアーカイブ名を指定してください。
注:
  1. プログラムのリスト注釈を使用可能にするには、ユーザー・モードのプロファイル作成 (-u) をオンにする必要があります。
  2. 共有ライブラリーのリスト・アノテーションを使用可能にするには、共有ライブラリー・プロファイル (-s) をオンにする必要があります。
  3. IPA コンパイルで生成されたリストに注釈を付けるには、a.lstobjectlist として指定します。
-m objectslist コンマ区切りリスト objectlist によって指定されたオブジェクトのマイクロプロファイル作成を使用可能にします。 実行可能プログラム、共有ライブラリー、 およびカーネル・エクステンションをマイクロプロファイル作成できます。 ライブラリーおよびカーネル・エクステンションのアーカイブ名を指定してください。
注:
  1. プログラムのマイクロプロファイル作成を使用可能にするには、 ユーザー・モードのプロファイル作成 (-u) をオンにする 必要があります。
  2. 共有ライブラリーのマイクロプロファイル作成を使用可能にするには、 共有ライブラリーのプロファイル作成 (-s) をオンにする 必要があります。
  3. カーネル・エクステンションのマイクロプロファイル作成を使用可能にするには、 カーネル・エクステンションのプロファイル作成 (-e) をオンにする 必要があります。
-M PathList ソース・パス・リストを指定します。 PathList は、マイクロ・プロファイル作成およびリスト注釈に必要なソース・ファイルと .lst ファイルを検索する対象の、コロン区切りのパスのリストです。

デフォルトのソース・パス・リストは、オブジェクト検索パス・リストです。

-n ポストプロセッシングをオフにします。 -n フラグが指定されていると、-u-s -k-e、および -jフラグは無視されます。 データは収集され、.trc ファイルおよび gensyms ファイルは生成されますが、.prof ファイルは生成されません。 この結果、例えば、ベンチマークの間のシステムの過負荷を回避するのに役立ちます。 -n オプションが使用される場合は、-A フラグを使用する必要があります。
-N ソース行番号情報の収集をオンにします。

-N フラグはシンボル・ファイルを生成するとき、または自動オフライン・モードで加工済みシンボル・ファイルを生成するときに、ソース行情報の収集を活動化します。 ただし、手動オフライン・モードでは、-N フラグはレポート・ファイルに影響しません。

-O このオプションには、以下の値を指定できます。
showaddrbytes=[on|off]
オンにするAddressおよびBytesサブルーチン・レポートの列。 デフォルト値はoffです。
wrapfname=[on|off]
長い関数名の行折り返しをオンにします。 関数名を行で折り返すには、値を -l として設定します。 デフォルト値はoffです。
pdetails=[on|off]
レポートのデータ統合プロセスをオンにします。 レポートは、指定されたデータを統合します。processlistレポートの「プロセスの要約 (Process Summary)」セクションの kernel および sharedlib セグメント。
-p processlist processlist に指定されたプロセス名について、プロセス・レベルのプロファイル作成を使用可能にします。 processlist は、コンマ区切りのプロセス名のリストです。

プロセス・レベルのプロファイル作成は、プロファイル作成モードの少なくとも 1 つ (-u-s-k-e、または -j) がオンになっている場合にのみ使用可能になります。

-P { すべて | PIDList } all の場合は、実行したすべてのプロセス、 または PIDList が指定されたプロセスについて、 プロセス・レベルのプロファイル作成を使用可能にします。 PIDList は、プロセス ID コンマで区切ったリストです。

プロセス・レベルのプロファイル作成は、プロファイル作成モードの少なくとも 1 つ (-u-s-k-e、または -j) がオンになっている場合にのみ使用可能になります。

-r ルート・ストリング rootstring を指定します。tprof 入力ファイルとレポート・ファイルはすべて、rootstring.suffix の形式になります。

-r フラグを指定しないと、rootstring パラメーターは -x フラグが指定するデフォルト・プログラム名を使用します。

-R tprof コマンドが、パーセンテージを計算するために、PURR 増分値で重み付けされたサンプルを使用することを指定します。 これは、同時マルチスレッドまたはMicro-Partitioning®環境で実行する場合に推奨されるモードです。

-R フラグは、 -z フラグまたは -Z フラグと一緒に使用することはできません。

-s 共有ライブラリーのプロファイル作成が可能です。
-S PathList オブジェクト検索 PathList を指定します。 PathList は、実行可能プログラム、共有ライブラリー、 およびカーネル・エクステンションを検索するときのパスをコロンで区切ったリストです。

デフォルトのオブジェクト検索 PathList は、 環境パス・リスト ($PATH) です。

-t スレッド・レベルのプロファイル作成を使用可能にします。

-p または -P を指定せず に -t フラグを使用する と、-t-P all -t と同じになり ます。 指定した場合は、選択したプロセスに対して、スレッド・レベルのレポートが 使用可能になります。 スレッド・レベルのプロファイル作成を使用可能にするには、 次のいずれかのプロファイル作成モード (-u-s-k-e、または -j) をオンにする必要があります。

-T buffersize トレース buffersize を指定します。

このフラグは、リアルタイムまたは自動オフライン・モードでのみ意味を持ちます。

-u ユーザー・モードのプロファイル作成を使用可能にします。
-v 詳細モードを使用可能にします。
-V File 指定された File に詳細出力を保管します。
-x program tprof がプログラムを実行するように指定します。 program が完了したとき、trcoff または trcstop によって trace が手動で停止されると、データ収集が停止します。

-x フラグは、tprof に指定す るフラグのリストで、最後のフラグにしてください。

-X tprof コマンドは、tprof プロファイル作成の終了時に XML 生成プログラムを呼び出す場合、ならびに tprof trace および symlib データから直接 XML レポートを生成する場合に指定します。

-X オプションには Java が必要です。 最初に Java をインストールし、Java が PATH にあることを確認してください。

-y 指定されたコマンドとその子孫についてのみ、イベント・ベースのプロファイル作成をオンにします。
-Z ティック・レポートをオンにします。 前バージョンの tprof との互換性が可能になります。 デフォルトでは、プロセッサー使用率がパーセント値でのみ報告されます。 -z を使用すると、tprof がティックも 報告します。 このフラグを使用すると、サブルーチン・レポート に Address と Bytes のカラムを追加します。

-z フラグと -a フラグを同時に指定すると、レポートのプロセス要約セクションにはパーセンテージではなく数値が表示されます。

-Z パーセンテージ ( -z フラグと同じ) の代わりにティックを使用するようにレポートを切り替え、注釈付きリスト ( -L フラグで使用した場合) および注釈付きソース・ファイル ( -m フラグで使用した場合) をサブルーチンごとに 1 つずつ、複数のファイルに分割します。

このオプションは、-g フラグをオンにします。

セキュリティー

RBACユーザーおよびTrustedAIXユーザーに注意:このコマンドは特権操作を実行できます。 特権命令を実行できるのは特権ユーザーのみです。 権限および特権について詳しくは、「セキュリティー」の『特権コマンド・データベース』を参照してください。 このコマンドに関連した特権および権限のリストについては、lssecattr コマンドまたは getcmdattr サブコマンドの項を参照してください。

  1. 以下の例は基本のグローバル・プログラムとスレッド・レベルの要約を示したものです。
    $tprof -x sleep 10 

    以下の出力に類似した出力が表示されます。

    Mon May 21 00:39:26 2012 System: AIX 6.1 Node: dreaming Machine: 000671894C00 
    Starting Command sleep 10 
    stopping trace collection. 
    Generating sleep.prof 

    生成される sleep.prof ファイルには、要約レポート・セクションのみが含まれます。

  2. 以下の例は、すべてのオプションが指定されたグローバル・プロファイル作成を示したものです。
    $tprof -skeuj -x sleep 10 

    以下の出力に類似した出力が表示されます。

    Mon May 21 00:39:26 2012 
    System: AIX 6.1 Node: drea
    ming Machine: 000671894C00 
    Starting Command sleep 10 
    stopping trace collection.
    Generating sleep.prof 

    生成される sleep.prof ファイルには、要約レポートとグローバル・プロファイルのセクションが含まれます。

  3. 以下の例は、単一のプロセス・レベルのプロファイル作成を示したものです。
    $tprof -u -p workload -x workload 

    以下の出力に類似した出力が表示されます。

    Mon May 21 00:39:26 2012 
    System: AIX 6.1 Node: drea
    ming Machine: 000671894C00 
    Starting Command workload stopping trace collection. 
    Generating workload.prof 

    生成される workload.prof ファイルには、ユーザー・モード・プロファイル・サブセクションのみが含まれる「workload」プロセスの要約レポート・セクション、グローバル・ユーザー・モード・プロファイル・セクション、および 1 つのプロセス・レベルのプロファイル・セクションが含まれます。

  4. 以下の例は、複数のプロセス・レベルのプロファイル作成を示したものです。
    $tprof -se -p send,receive -x startall 

    以下の出力に類似した出力が表示されます。

    Mon May 21 00:39:26 2012 
    System: AIX 6.1 Node: drea
    ming Machine: 000671894C00 
    Starting Command startall 
    stopping trace collection. 
    Generating startall.prof

    生成される startall.prof ファイルには要約レポート、グローバル共有ライブラリー・モード・プロファイル、グローバル・カーネル・エクステンション・プロファイルの各セクション、および 2 つのプロセス・レベル (プロセス「send」用とプロセス「receive」用) のプロファイル・セクションが含まれます。 プロセス・レベルの各セクションには、共有ライブラリーのプロファイ ル情報とカーネル・エクステンションのプロファイル情報用に 2 つのサブセクションがあります。

  5. 以下の例は、マイクロプロファイル作成とリスト注釈を示したものです。
    $tprof -m ./tcalc -L ./tcalc -u -x ./tcalc 

    以下の出力に類似した出力が表示されます。

    Mon May 21 00:39:26 2012 
    System: AIX 6.1 Node: drea
    ming Machine: 000671894C00 
    Starting Command ./tcalc 
    stopping trace collection. 
    Generating tcalc.prof 
    Generating tcalc.tcalc.c.mprof
    Generating tcalc.tcalc.c.alst

    生成される tcalc.prof ファイルには要約レポート・セクションとグローバル・ユーザー・モード・プロファイル・セクションが含まれます。 結果の tcalc.tcalc.c.mprof および tcalc.tcalc.c.alst ファイルには、マイクロプロファイル・レポートと注釈付きリストが含まれます。

  6. プロセッサー・サイクルに関するイベント・ベースのプロファイル作成で、100 ミリ秒ごとに 1 回サンプリングするには、次のように入力します。
    $tprof -E -f 100 -Askex sleep 10

    出力は、以下の表示に類似する出力となります。

    Starting Command sleep 10
    stopping trace collection.
    Tue Apr 26 14:44:02 2005
    System: AIX 5.3 Node: bigdomino Machine: 00C0046A4C00
    Generating sleep.trc
    Generating sleep.prof
    Generating sleep.syms
  7. 完了済み命令に関するイベント・ベースのプロファイル作成で、20,000 の完了済み命令ごとに 1 回サンプリングするには、次のように入力します。
    $tprof -E PM_INST_CMPL -f 20000 -Askex sleep 10

    出力は、以下の表示に類似する出力となります。

    Starting Command sleep 10
    stopping trace collection.
    Tue Apr 26 14:42:44 2005
    System: AIX 5.3 Node: bigdomino Machine: 00C0046A4C00
    Generating sleep.trc
    Generating sleep.prof
    Generating sleep.syms
  8. エミュレーション割り込みに関するイベント・ベースのプロファイル作成の場合、10000 回のイベントごとに 1 回サンプリングするには、以下のコマンドを入力します。
    $tprof -E EMULATION -Askex sleep 10

    出力は、以下の表示に類似する出力となります。

    Starting Command sleep 10
    stopping trace collection.
    Tue Apr 26 14:41:44 2005
    System: AIX 5.3 Node: bigdomino Machine: 00C0046A4C00
    Generating sleep.trc
    Generating sleep.prof
    Generating sleep.syms
  9. 以下の例は、自動オフライン・モードを示したものです。
    $tprof -c -A all -x sleep 10 

    出力は、以下の表示に類似する出力となります。

    Starting Command sleep 10 
    stopping trace collection. 
    Mon May 21 00:39:26 2012 
    System: AIX 6.1 Node: drea
    ming Machine: 000671894C00 
    Generating sleep.ctrc 
    Generating sleep.csyms 
    Generating sleep.prof 

    生成される sleep.prof ファイルには要約レポート・セクションのみが含まれますが、2 つの加工済みファイルは再ポストプロセスの準備ができています。

  10. 以下の例は、ソース行収集を使用可能にする自動オフライン・モードを示したものです。
    $tprof -A -N -x sleep 10 

    出力は、以下の表示に類似する出力となります。

    Starting Command sleep 10
    stopping trace collection.
    Wed Feb 8 15:12:41 2006
    System: AIX 5.3 Node: aixperformance Machine: 000F9F3D4C00
    Generating sleep.trc
    Generating sleep.prof
    Generating sleep.syms
    生成される sleep.prof ファイルには要約レポート・セクションのみが含まれ、sleep.syms にはソース行情報が含まれます。
  11. 以下の例は、ソース行収集と命令収集を使用可能にする自動オフライン・モードを示したものです。
    $tprof -A -N -I -r RootString -x sleep 10 

    出力は、以下の表示に類似する出力となります。

    Starting Command sleep 10
    stopping  trace collection.
    Wed Feb  8 15:16:37 2006
    System: AIX 5.3 Node: aixperformance Machine: 000F9F3D4C00
    Generating RootString.trc
    Generating RootString.prof
    Generating RootString.syms
    rootstring.prof ファイルが生成されます。 rootstring.syms ファイルにはソース行情報とバイナリー命令が含まれます。
  12. Java 5 JVM でリアルタイム・モードで実行されているアプリケーション HelloAIX の場合は、以下のコマンドを入力します。 を収集する Java ソース行および命令を使用可能にする
    $tprof -N -I -x java -Xrunjpa:source=1,instructions=1 Hello AIX 

    出力は、以下の表示に類似する出力となります。

    Thu Feb  9 13:30:38 2006
    System: AIX 5.3 Node: perftdev Machine: 00CEBB4A4C00
    Starting Command java -Xrunvpn_jpa:source=1,instructions=1 Hello AIX
    Hello AIX!
    stopping trace collection.
    Generating java.prof
    java.prof ファイルが生成されます。 これには、JIT ソース行情報と JIT 命令が含まれます。
  13. 以下の例は、共有ライブラリー、スレッド・レベル・プロファイル作成、プロセッサーごとのトレース、またはポストプロセッシングがない、 vloop_lib_32 プログラムのプロセッサー使用を示したものです。
    $tprof -A -n -s -t -r test -x vloop_lib_32 5

    出力は、以下の表示に類似する出力となります。

    Starting Command vloop_lib_32 5
    stopping trace collection.
    Generating test.trc
    Generating test.syms
  14. 以下に、XML レポートの自動化オフライン・モードの例を示します。
    $tprof -A -X -r RootString -x sleep 10
    Starting Command sleep 10
    stopping trace collection.
    Tue Apr 17 22:00:24 2007
    System: AIX 5.3 Node: test105 Machine: 00CEBB4A4C00
    Generating sleep.trc
    Generating sleep.syms
    Calling tprof2xml to generate XML report.
    tprof2xml TraceReader Version 1.2.0
    Tue Apr 17 22:00:24 2007
    System: AIX 6.1 Node: test105 Machine: 00CEBB4A4C00
     ------------------0------------------
    Record 0
    Post-processing counters
    Retrieving Disassembly
    writing the XML
    Writing symbol list
    .
    Writing process hierarchy
    Finished writing sleep.etm
  15. 以下に、ソース行と命令収集を使用可能にする自動化オフライン・モードの例を示します。
    $tprof -A -N -I -X -x sleep 10
    Starting Command sleep 10
    stopping trace collection.
    Tue Apr 17 22:00:24 2007
    System: AIX 5.3 Node: test105 Machine: 00CEBB4A4C00
    Generating sleep.trc
    Generating sleep.syms
    Calling tprof2xml to generate XML report.
    tprof2xml TraceReader Version 1.2.0
    Tue Apr 17 22:00:24 2007
    System: AIX 6.1 Node: test105 Machine: 00CEBB4A4C00
    ------------------0------------------
    Record 0
    Post-processing counters
    Retrieving Disassembly
    writing the XML
    Writing symbol list
    .
    Writing process hierarchy
    Finished writing sleep.etm
    The symbol data elements in the xml report will have both bytes and
    LineNumberList child elements.
  16. 以下に、時刻データを使用可能にする XML レポートの自動化オフライン・モードの例を示します。
    $tprof -A -X timedata,buckets=100 -x sleep 10
    Starting Command sleep 10
    stopping trace collection.
    Tue Apr 17 22:18:06 2007
    System: AIX 5.3 Node: test105 Machine: 00CEBB4A4C00
    Generating RootString.trc
    Generating RootString.syms
    Calling tprof2xml to generate XML report.
    tprof2xml TraceReader Version 1.2.0
    Tue Apr 17 22:18:06 2007
    System: AIX 5.3 Node: test105 Machine: 00CEBB4A4C00
    Tue Apr 17 22:18:06 2007
    System: AIX 5.3 Node: test105 Machine: 00CEBB4A4C00
    ------------------0------------------
    Record 0
    Post-processing counters
    Retrieving Disassembly
    writing the XML
    Writing symbol list
    .
    Writing process hierarchy
    Finished writing RootString.etm
    The RootString.etm will have bucket elements in each object of the profile
    hierachy.
  17. 以下に、XML レポートの手動オフライン・モードの例を示します。
    $tprof -A -x sleep 10
    Starting Command sleep 10
    stopping trace collection.
    Tue Apr 17 22:28:01 2007
    System: AIX 5.3 Node: test105 Machine: 00CEBB4A4C00
    Generating sleep.trc
    Generating sleep.prof
    Generating sleep.syms
    tprof を実行して、sleep.trc および sleep.syms を使用し、XML レポートを生成する場合は、以下の入力を行って -r sleep を指定して、XML レポートを生成します。
    $tprof -X -r sleep
    Calling tprof2xml to generate XML report.
    tprof2xml TraceReader Version 1.2.0
    Tue Apr 17 22:28:01 2007
    System: AIX 6.1 Node: test105 Machine: 00CEBB4A4C00
    ------------------0------------------
    Record 0
    Post-processing counters
    Retrieving Disassembly
    writing the XML
    Writing symbol list
    .
    Writing process hierarchy
    Finished writing sleep.etm
  18. ワークロードとその子孫のラージ・ページ分析については、以下のコマンドを入力してください。
    $tprof -a -y workload
    出力は、以下の表示に類似する出力となります。
    Starting Command workload
    stopping trace collection.
    Tue Apr 26 14:42:44 2005
    System: AIX 5.3 Node: bigdomino Machine: 00C0046A4C00
    Generating workload.trc
    Generating workload.prof
    Generating workload.syms
  19. 指定されたプログラム workload とその子孫のみのプロファイルを作成するには、以下のコマンドを入力してください。
    $tprof -E PM_MRK_LSU_FIN -f 20000 -Aske -y workload
    出力は、以下の表示に類似する出力となります。
    Starting Command workload
    stopping trace collection.
    Tue Apr 26 16:42:44 2005
    System: AIX 5.3 Node: bigdomino Machine: 00C0046A4C00
    Generating workload.trc
    Generating workload.prof
    Generating workload.syms
  20. Java 6 JVM上でリアルタイム・モードで実行されているアプリケーションAIXのJavaソース・ラインおよび命令収集を有効にするには、以下のコマンドを入力します:
    $ tprof -N -I -x java -agentlib:jpa=source=1,instructions=1 Hello AIX
    注: 64 ビット JDK を使用する場合は、 -agentlib:jpa の代わりに、以下の形式で -agentlib:jpa64 コマンドを入力してください。
    $ tprof -N -I -x java -agentlib:jpa64=source=1,instructions=1 Hello AIX
    出力は、以下の表示に類似する出力となります。
    Fri May 30 04:16:27 2008
    System: AIX 6.1 Node: toolbox2 Machine: 00CBA6FE4C00
    Starting Command java -agentlib:jpa=source=1,instructions=1 Hello AIX
    Hello AIX!
    stopping trace collection.
    Generating java.prof

    java.prof ファイルが生成されます。 これには、JIT ソース行情報と JIT 命令が含まれます。

  21. -O showaddrbytes=on フラグを使用してレポートにアドレス・バイト情報を表示するには、次のコマンドを入力します。
    $ tprof  -O showaddrbytes=on -x sleep 5
    
    次の例のようなレポートが表示されます。
    
    Subroutine                        %   Source                Address  Bytes 
    ==========                     ====== ======                =======  ===== 
    h_cede_end_point                98.47 hcalls.s               111bfc     14 
    
    Sample report without -O showaddrbytes=on option 
    
    Subroutine                        %   Source                      
    ==========                     ====== ======         
    h_cede_end_point                98.47 hcalls.s    
  22. -G オプションを使用して、02/18/2016 02:30:30 から 02/18/2016 02:35:30 までのトレース・データの処理を表示するには、次のコマンドを入力します。
    $tprof  -G “start=021802303016,end=021802353016” -r sleep
    
    02/18/2016 02:30:30 から終了までのトレース・データを処理するには、次のコマンドを入力します。
    
    $tprof -G “start= 021802303016” -r sleep
    開始から 02/18/2016 02:35:30 までのトレース・データを処理するには、次のコマンドを入力します。
    $tprof -G “end=021802303517” -r sleep
  23. 以下の例で、関数名は次のとおりです。
    Test::abcdefghijklmnoprstuvwxyz ABCDEFGHIJKLMNOPQRSTUVWXYZ123456789
    -O wrapfname=on オプションを使用して長い関数名の行折り返しの方法を表示するには、次のコマンドを入力します。
    $tprof -ukesl -O wrapfname=on -x sleep 5
    
    The following is a sample report: 
    .Test::abcdefghijklmnoprstuvwxyz
    ABCDEFGHIJKLMNOPQRSTUVW
    XYZ123456789							215  19.40 test. C
    -O wrapfname=on オプションを使用しないサンプル・レポートを以下に示します。
    Test::abcdefghijklmnoprstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ123456789_0abcdefghijk 
    lmnoprstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ1234567890(int,int)  215  19.40 test. C

メッセージ

システムが以下のメッセージを表示したものと仮定します。

/dev/systrace: device busy or trcon: TRCON:no such device

これは、trace 機能を既に使用中であることを意味します。 プログラムを停止し、入力後に再試行してくださいtrcstopトレースを停止します。