Sun WorkShop の概要 |
第 6 章
プログラムのパフォーマンスの解析
この章では、Sun WorkShop の標本コレクタと標本アナライザの基本機能について説明します。UNIX の
prof
とgprof
パフォーマンスプロファイルツールが作成する情報は、ユーザーの CPU 使用時間情報だけです。これに対し、Sun WorkShop の標本コレクタと標本アナライザでは、関数や読み込みオブジェクト、標本収集間隔、マルチスレッドプログラムのスレッドおよび軽量プロセス (LWP) 別に分類された広範囲の測定項目を検討できます。
- 標本コレクタは、アプリケーションの実行中にパフォーマンスデータを収集し、その収集データを実験ファイルに保存します。標本コレクタは、「デバッグ」ウィンドウの「ウィンドウ」メニューから起動します。
- 標本アナライザは、実験ファイル内のパフォーマンスデータを表示します。このパフォーマンスデータに基づいて、プログラムのパフォーマンスを解析し、改善箇所を調べることができます。標本コレクタは、Sun WorkShop のメインウィンドウの「ツール」メニューから起動します。
Sun WorkShop に付属するこれらのツールとその他のパフォーマンスプロファイルツールの使用方法についての詳細は、次を参照してください。
- 『プログラムのパフォーマンス解析』
- オンラインヘルプ
注 - パフォーマンスデータを収集するには、アプリケーションを構築しておく必要があります。構築については、このマニュアルの第 3 章とオンラインヘルプを参照してください (オンラインヘルプには、Sun WorkShop のどのウィンドウからでも「ヘルプ」メニューまたは「ヘルプ」ボタンでアクセスできます)。
パフォーマンスデータの収集
標本コレクタは、プログラムが「デバッグ」ウィンドウで実行されているときに、そのパフォーマンスデータを収集し、その収集データを実験ファイルに保存します。保存した実験ファイルは、標本アナライザで利用できます。
表 6-1 に、収集できるデータの種類をまとめます。
表 6-1 収集できるデータの種類 クロックに基づくプロファイルデータ 関数またはオブジェクト読み込みのタイミング情報 スレッド同期待ちトレースデータ マルチスレッドプログラムにおけるスレッド同期ルーチン呼び出し時の待ち時間 アドレス空間データ アプリケーションがそのアドレス空間内のページおよびセグメントの使用状況データ
標本コレクタは、ページフォルトや入出力データ、コンテキストの切り替え、ワークセットおよびページング統計情報などの実行時統計情報を自動的に記録します。標本コレクタでは、データの収集間隔を指定したり、標本収集間隔を手動で終了するように設定したりできます。
収集するデータの種類の選択と標本コレクタの実行についての詳細は、次を参照してください。
パフォーマンスデータの解析
標本コレクタでパフォーマンスデータを収集すると、標本アナライザでそのデータを表示できます。標本アナライザは独立したツールで、Sun WorkShop のメインウィンドウや「標本コレクタ」ウィンドウの「ツール」メニューから起動します。標本アナライザのさまざまな表示データに基づいて、プログラムが過度に実行時間を費やしている箇所やシステム資源を効率よく利用していない箇所を特定できます。
「標本アナライザ」ウィンドウには、4 つの表示オプションがあり、「データ」リストボックスから選択できます (表 6-2 を参照)。
表 6-2 表示、解析できるデータの種類 関数リストの表示 プログラムの関数や読み込みオブジェクトに関する詳細情報 概要の表示 プログラムの標本収集間隔に関する統計情報 アドレス空間の表示 プログラムのアドレス空間内のページまたはセクターの使用状況に関する情報 実行統計の表示 プログラムの実行時間全体にまたがるグローバルな統計情報
標本アナライザでは、プログラム全体のデータを検査することも、解析対象として関数や読み込みオブジェクト、標本収集間隔、スレッド、LWP を個別に指定することもできます。 また、アナライザを使用して、リンカー用のマップファイルを作成することもできます。リンカーは、このマップファイルを使用し、プログラムがアドレス空間をより効率よく使用するようにできます。
標本アナライザの関数リストでは、一度に複数に実験記録を表示できます。複数の実験記録を読み込むと、その他の表示同様、データフィルタ機能が無効になります。
関数および読み込みオブジェクトデータの表示
関数リストには、関数または読み込みオブジェクトごとに次のメトリック (計測データ) に関する値 (排他的な値と包括的な値) が表示されます。
- ユーザーの CPU 使用時間や総 LWP 時間、ウォールクロック時間、システム時間、ページフォルト時間などのクロックに基づくプロファイル
- スレッド同期待ちトレース時間 (マルチスレッドプログラムの場合)
それぞれのメトリックについて、絶対値 (秒数、回数) とプログラム全体のメトリックに対する割合 (百分率) が表示されます。
関数リストに表示するメトリックや、データの並べ替えの基準にするメトリックを指定できます。また、選択した関数または読み込みオブジェクトに対して指定可能な全メトリックを含むウィンドウを開くこともできます。
呼び出し元と呼び出し先のデータの表示
関数リストから「呼び出し元 - 呼び出し先」ウィンドウを開き、現在の関数とその呼び出し元、呼び出し先の排他的なデータと包括的なデータ、属性データを表示できます。現在の関数の呼び出し元または呼び出し先を選択することによって、プログラムをステップ実行することもできます (この後は、呼び出し元または呼び出し先が現在の関数になります)。詳細は、オンラインヘルプを参照してください。
注釈付きのソースコードと逆アセンブリコードの表示
プログラムのメトリックデータ付きでソースコードおよび逆アセンブリコードを表示することによって、プログラムのパフォーマンスを 1 行ごとまたは命令ごとに調査できます。これらのメトリックデータによって、特定の関数内の最も実行時間を消費している行を特定できます。詳細は、オンラインヘルプを参照してください。
サン・マイクロシステムズ株式会社 Copyright information. All rights reserved. |
ホーム | 目次 | 前ページへ | 次ページへ | 索引 |