Sun WorkShop 入門

パフォーマンスデータの解析

標本コレクタで収集したパフォーマンスデータを表示できるのは、標本アナライザだけです。標本アナライザは、Sun WorkShop のメインウィンドウから呼び出せる独立したツールです。このツールは、「標本コレクタ」ウィンドウで「コレクタ」⇒「解析」を選択しても、同じように呼び出すことができます。

標本コレクタで収集できる 3 種類のデータは、9 種類のデータに分けて解析することができます。これら 9 種類の解析可能なデータには、アナライザ表示オプションをそれぞれ 1 〜 2 個指定することができます。

表示、解析可能なデータの種類

「アナライザ」ウィンドウの「データ」リストから以下の種類のデータを選択して、解析することができます。

データの種類を選択する方法については、WorkShop オンラインヘルプの「データの種類の選択」を参照してください。

表示オプション

標本アナライザは、次の 5 種類の方法で収集されたパフォーマンスデータを表示します。

呼び出された関数、ファイル、セグメントに使われた時間も含まれます。

表示オプションを選択する方法については、Sun WorkShop オンラインヘルプの「データの種類の選択」を参照してください。

標本の比較

「アナライザ」ウィンドウで 「表示」⇒「新規ウィンドウ」を選択すると、新しい「アナライザ」ウィンドウが開いて、2 つの標本を比較したり、同じ標本を異なる方法で表示したりすることができます。

プログラム関数の並べ替え

テキストのページフォルトによって、アプリケーションの時間が大量に使われている場合は、アナライザによってプログラム関数が並べ替えられ、関数の順序が変更されたマップファイルが生成されます。最も使用頻度の高い関数がグループにまとめられて同じページセットに配置されるので、呼び出された関数は、すでにメモリー上にある確率が高くなります。

-M オプションではマップファイルがリンカーに渡され、アプリケーションと再リンクし、小さなテキストアドレス空間で実行可能なアプリケーションを新規に生成できます。

アプリケーションを並べ替えた後、新しい実験ファイルを実行して並べ替えの前と後のバージョンを比較することができます。

アプリケーションを並べ替えるには、次の手順に従ってください。

  1. -xF オプションを使用してアプリケーションをコンパイルします。

    並べ替えには、-xF オプションが必要です。このオプションを指定すると、コンパイラによって、独立して再配置可能な関数が生成されます。

    C アプリケーションの場合、次のように指定します。


    cc -g -xF -c a.c b.c
    cc -o application_name a.o b.o

    C++ アプリケーションの場合、次のように指定します。


    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.

  2. デバッグするアプリケーションを Sun WorkShop に読み込みます。

  3. 「デバッグ」ウィンドウから「ウィンドウ」、「標本コレクタ」を選択して標本コレクタを起動し、パフォーマンスデータを収集します。

  4. Sun WorkShop でアプリケーションを実行します。

  5. 指定された実験データを標本アナライザに読み込みます。

  6. 「実験ファイル」⇒「マップファイル作成」を選択して、標本アナライザ内に並べ替えたマップを作成します。使用する標本、マップファイルのディレクトリ、マップファイルの名前をファイル選択ボックスに入力して、「了解」をクリックします。

    マップファイルには、関数の名前と、その関数に対応するユーザー CPU 時間が示されます。プロファイルデータと関数のサイズを降順にソートすることで、テキストアドレス空間のサイズを小さくする関数の順序が指定されます。マップファイル中に記述されていない関数はすべて、マップファイル中の関数の後に配置されます。

  7. 新しいマップファイルを使ってアプリケーションをリンクします。

    C アプリケーションの場合、次のように指定します。


    cc -Wl -M mapfile_name a.o b.o

    C++ アプリケーションの場合、次のように指定します。


    cc -M mapfile_name a.o b.o

    C アプリケーションでは、-M オプションを指定すると、コンパイラは -M mapfile_name をリンカーに渡します。

    Fortran アプリケーションの場合、次のように指定します。


    f77 -M mapfile_namea.o b.o

出力

現在表示されている要約されていないテキストか、実験データのテキスト形式の要約 (データの種類ごとの平均標本収集時間と関数、モジュール、セグメントの使用頻度に関する情報など) を出力するには、「アナライザ」ウィンドウで「実験ファイル」⇒「印刷」、または「実験ファイル」⇒「要約を印刷」を選択し、ダイアログに適切な情報を入力してください。

実験データのエクスポート

収集した実験データをファイルにエクスポートして、別のプログラム (スプレッドシートや独自のアプリケーションなど) で使用することができます。

実験データを ASCII ファイルにエクスポートするには、次の手順に従ってください。

  1. エクスポートする実験ファイルのディレクトリを「ディレクトリ」テキストボックスに入力し、ファイル名を「ファイル」テキストボックスに入力します。

  2. 「実験ファイル」⇒「エクスポート」を選択します。

  3. 「了解」をクリックして、指定した名前で実験データを保存します。