標本コレクタで収集したパフォーマンスデータを表示できるのは、標本アナライザだけです。標本アナライザは、Sun WorkShop のメインウィンドウから呼び出せる独立したツールです。このツールは、「標本コレクタ」ウィンドウで「コレクタ」⇒「解析」を選択しても、同じように呼び出すことができます。
標本コレクタで収集できる 3 種類のデータは、9 種類のデータに分けて解析することができます。これら 9 種類の解析可能なデータには、アナライザ表示オプションをそれぞれ 1 〜 2 個指定することができます。
「アナライザ」ウィンドウの「データ」リストから以下の種類のデータを選択して、解析することができます。
プロセス時間 −プロセスの処理に費やされた時間の要約 (ユーザー時間、システム待ち時間、システム時間、テキストページフォルト時間、データページフォルト時間を含む)
ユーザー時間 − ユーザープロセスの命令の実行に費やされた時間
システム待ち時間 − プロセスがカーネル内で休眠していた時間 (一時停止、アイドル、ロック待ち、テキストフォルト、データフォルト状態の時間は含まれない)
システム時間 − オペレーティングシステムがシステムコールの実行に費やした時間
テキストページフォルト時間 − テキストページフォルトの処理に費やされた時間
データページフォルト時間 − データページフォルトの処理に費やされた時間
プログラムのサイズ − アプリケーションの関数、モジュール、セグメントのサイズ (バイト単位)。アドレス空間のデータと併せて使用して、アプリケーションのサイズを調べることができる。このため、特別に必要なメモリーを設定することができる
アドレス空間 − テキストページとデータページの両方の動作の参照。「プログラムのサイズ」のデータと併せて使用して、アプリケーションのサイズを調べることができる。このため、特別に必要なメモリーを設定することができる
実行統計 − アプリケーションの実行に関する全体的な統計
データの種類を選択する方法については、WorkShop オンラインヘルプの「データの種類の選択」を参照してください。
標本アナライザは、次の 5 種類の方法で収集されたパフォーマンスデータを表示します。
概要表示 − アプリケーションのパフォーマンス動作について、高レベルの概要をデフォルトで表示
以下の情報が含まれます。
収集プロセス中に採取された標本の数
収集プロセス中の標本ごとのプロセスの活動状態の内訳
選択した標本を平均したプロセスの活動状態の内訳
表示しているテスト全体の割合 (%)
ヒストグラム表示 − 関数、ファイル、ロードオブジェクトの実行に使われた総時間の要約
累計表示 − 関数、ファイル、ロードオブジェクトの実行に使われた時間の合計
呼び出された関数、ファイル、セグメントに使われた時間も含まれます。
アドレス空間表示 − メモリー使用率に関する情報
統計表示 − パフォーマンスおよびシステムリソースの使用率に関する総合データ
表示オプションを選択する方法については、Sun WorkShop オンラインヘルプの「データの種類の選択」を参照してください。
「アナライザ」ウィンドウで 「表示」⇒「新規ウィンドウ」を選択すると、新しい「アナライザ」ウィンドウが開いて、2 つの標本を比較したり、同じ標本を異なる方法で表示したりすることができます。
テキストのページフォルトによって、アプリケーションの時間が大量に使われている場合は、アナライザによってプログラム関数が並べ替えられ、関数の順序が変更されたマップファイルが生成されます。最も使用頻度の高い関数がグループにまとめられて同じページセットに配置されるので、呼び出された関数は、すでにメモリー上にある確率が高くなります。
-M オプションではマップファイルがリンカーに渡され、アプリケーションと再リンクし、小さなテキストアドレス空間で実行可能なアプリケーションを新規に生成できます。
アプリケーションを並べ替えた後、新しい実験ファイルを実行して並べ替えの前と後のバージョンを比較することができます。
アプリケーションを並べ替えるには、次の手順に従ってください。
-xF オプションを使用してアプリケーションをコンパイルします。
並べ替えには、-xF オプションが必要です。このオプションを指定すると、コンパイラによって、独立して再配置可能な関数が生成されます。
cc -g -xF -c a.c b.c cc -o application_name a.o b.o
CC -g -xF -c a.cc b.cc CC -o application_name a.o b.o
Fortran アプリケーションの場合、次のように指定します。
f77 -g -xF -c a.f b.f f77 -o application_name a.o b.o
次の警告メッセージが表示された場合には、静的にリンクされたファイルを確認してください。共有されていないオブジェクトやライブラリなどのファイルが、-xF オプションを指定してコンパイルされていないことがあります。
ld: warning: mapfile: text: .text%function_name:
object_file_name:
Entrance criteria not met the named file, function_name, has not
been compiled with the -xF option.
デバッグするアプリケーションを Sun WorkShop に読み込みます。
「デバッグ」ウィンドウから「ウィンドウ」、「標本コレクタ」を選択して標本コレクタを起動し、パフォーマンスデータを収集します。
Sun WorkShop でアプリケーションを実行します。
指定された実験データを標本アナライザに読み込みます。
「実験ファイル」⇒「マップファイル作成」を選択して、標本アナライザ内に並べ替えたマップを作成します。使用する標本、マップファイルのディレクトリ、マップファイルの名前をファイル選択ボックスに入力して、「了解」をクリックします。
マップファイルには、関数の名前と、その関数に対応するユーザー CPU 時間が示されます。プロファイルデータと関数のサイズを降順にソートすることで、テキストアドレス空間のサイズを小さくする関数の順序が指定されます。マップファイル中に記述されていない関数はすべて、マップファイル中の関数の後に配置されます。
新しいマップファイルを使ってアプリケーションをリンクします。
cc -Wl -M mapfile_name a.o b.o
cc -M mapfile_name a.o b.o
C アプリケーションでは、-M オプションを指定すると、コンパイラは -M mapfile_name をリンカーに渡します。
Fortran アプリケーションの場合、次のように指定します。
f77 -M mapfile_namea.o b.o
現在表示されている要約されていないテキストか、実験データのテキスト形式の要約 (データの種類ごとの平均標本収集時間と関数、モジュール、セグメントの使用頻度に関する情報など) を出力するには、「アナライザ」ウィンドウで「実験ファイル」⇒「印刷」、または「実験ファイル」⇒「要約を印刷」を選択し、ダイアログに適切な情報を入力してください。
収集した実験データをファイルにエクスポートして、別のプログラム (スプレッドシートや独自のアプリケーションなど) で使用することができます。
実験データを ASCII ファイルにエクスポートするには、次の手順に従ってください。