標本アナライザは、実際のデータの性質に応じて、各データの種類により 1 つか 2 つの表示形式を選択し関連付けます。
「表示」リストボックスを使って、表 2-3 に示す表示形式から 1 つを選択してください。
表 2-3 データの種類に対する標本アナライザの表示形式
概要 |
デフォルトの表示は、パフォーマンス動作のレベルの高い概要を提供する。 |
ヒストグラム |
関数、ファイル、読み込みオブジェクトの実行に費やした時間の合計 |
累計 |
関数、ファイル、読み込みオブジェクトの実行に費やした時間の累積合計。呼び出し関数、ファイル、セグメントに費やされた時間も含む |
アドレス空間 |
メモリの使用状況についての情報 |
統計 |
パフォーマンスおよびシステム資源の使用状況についての総合的なデータ |
「概要」表示画面では、アプリケーションが異なる処理状態において費やす時間の合計を各標本ごとに表示します (図 2-4 を参照)。標本コレクタはデータ収集処理中つねにこのデータを収集するため、実験結果が標本アナライザに読み込まれる際には、デフォルトとして「概要」表示画面が表示されます。
「概要」表示形式の特徴を以下に示します。
アプリケーションの高いレベルでのパフォーマンス動作の概要を提示する。
アプリケーションの実行時間が異なるパフォーマンス領域にどのように区分けされるかを提示することで、CPU、I/O、ページングなどのボトルネックを確認する手がかりを提供する。
実行中のアプリケーションのパフォーマンスの変化を提示する (たとえば、実行の最初の部分は I/O の境界内にあり、その後の部分が CPU の境界内にあるなど) 。
「概要」表示画面には、セグメント分けされたバーからなる、番号の付けられた標本のカラムが表示されます。各カラムは、実験中に収集された個々の標本を表しています。
各カラム内のセグメントは、異なるパフォーマンス領域を表しています。そして、各セグメントの高さは、各パフォーマンス領域に費やされた時間に比例しています。
それぞれのパフォーマンス領域を示すカラムの凡例は、実験データのすべてのカラム、およびほかの実験においても同じです。
透明なセグメント (表示画面の前景色と同じ色のセグメント) は、パフォーマンス領域が小さすぎて、表示できないことを示しています。透明なセグメントにどのパフォーマンス領域が含まれているかを確認するには、そのセグメントのカラムをクリックし、「表示」メニューの「詳細表示」を選択すると、「標本の詳細」ダイアログボックスが表示されます(図 2-5 を参照)。
「表示」メニューから「詳細表示」を選択すると、「標本の詳細」ダイアログボックスを表示できます。
このダイアログボックスのフィールドには、選択された標本についての以下の情報が含まれます。
表 2-4 「標本の詳細」ダイアログボックスのフィールド
標本 |
現在選択されている標本とそれらの実験におけるパーセンテージ |
開始時間 |
標本採取の開始時刻 |
終了時間 |
標本採取の終了時刻 |
経過時間 |
標本採取の期間 |
ユーザー |
アプリケーション命令実行に費やされた時間 |
システム |
オペレーティングシステムがシステムコール実行に費やした時間 |
トラップ |
トラップ (自動的な例外処理あるいはメモリのエラー) 実行に費やした時間 |
テキストフォルト |
テキストページでのフォルティングに費やされる時間 |
データフォルト |
データページでのフォルティングに費やされる時間 |
I/O |
プログラム I/O に費やされる時間 |
ロック待ち |
ライトウェイトプロセスロックが解放されるまでの待ち時間 |
スリープ |
プログラムがスリープに費やす時間 (「テキストフォルト」、「データフォルト」、「システム待ち」、「ロック待ち」以外の理由による) |
中断 |
サスペンドに費やされる時間 (ブレークポイントに到達した際に、デバッガで費やす時間も含む) |
アイドル |
アイドルに費やされる時間 |
パラメータ |
各標本用に収集されるデータパラメータの一覧 (実験の開始前に、標本コレクタにおいて設定します) |
「ヒストグラム」表示画面は、アプリケーションが関数、ファイル、読み込みオブジェクトの実行にどれくらいの時間を費やしたかを表示します。(図 2-6 を参照)
「ヒストグラム」表示画面オプションは、以下のデータの種類に対して利用できます。
ユーザー時間
システム待ち時間
システム時間
テキストページ・フォルト時間
データページ・フォルト時間
アプリケーションのパフォーマンスデータをコンパイル細分性のレベルごとに表示するには、以下の表に示すいずれかの単位を選択してください。
表 2-5 標本アナライザが使用する測定の表示単位
関数 |
アプリケーションが関数実行に費やす時間 |
ファイル |
ファイルレベル単位の実行に費やす時間。アプリケーションが多くの関数を持っている場合には、この表示方法は有用です。ひとつのソースファイルのすべてのデータが一緒に表示されます。 注意 : 実行対象の一部 (共有ライブラリを含む) が -g オプションによってコンパイルされていない場合、関数とその関数を含むファイルとの関連情報が足りない場合もあります。 |
ロードオブジェクト |
テキストセグメントの実行に費やす時間 |
「ヒストグラム」表示画面に含める標本は、以下の 3 通りの方法で選択できます。
「標本の範囲」テキストフィールドに標本番号を直接入力する。各番号はカンマで区切り (例 : 1,3,6)、範囲はハイフンによって指定 (例 : 1-6) する。
「概要」表示画面上で、対象となる標本が含まれるカラムを選択します。
「概要」表示画面上で、「表示」メニューから「すべてを選択」または「選択解除」を選択して、実験データの全標本を含めるかまたは除外します。
「ヒストグラム」表示画面に含めるセグメントを選択するには、「表示」メニューの 「ファイルから取り込むセグメント」コマンドを選択し、「ファイルから取り込むセグメント」ダイアログボックスを開きます。そして、任意のセグメントを選択し、「適用」ボタンをクリックするか、「すべてを選択」ボタンをクリックして全セグメントを選択します。
「ヒストグラム」 表示画面をソートするには、「表示」メニューの 「ソート基準」コマンドを選択し、「値」または「名前」を選択します。
特定の名前を検索するには、「表示」メニューの「検索」コマンドを選択し、「検索」ダイアログボックスを開きます。そして、検索文字列をテキストフィールドに入力し、「適用」ボタンをクリックします。
「累計」表示画面には、関数、ファイル、ロードオブジェクトによって費やされる総実行時間 (呼び出された関数、ファイル、セグメントに費やされる時間も含みます) が表示されます(図 2-7 を参照)。下位クラスの関数において累積された実行時間は、すべて親関数へと帰します。
「累計」表示画面は以下のデータの種類に対して利用できます。
ユーザー時間
システム待ち時間
システム時間
テキストページ・フォルト時間
データページ・フォルト時間
データをコンパイル細分性のレベルごとに表示するには、以下の表に示すいずれかの単位を選択してください。
表 2-6 標本アナライザが使用する測定の表示単位
関数 |
アプリケーションが関数実行に費やす時間 |
ファイル |
ファイルレベル単位の実行に費やす時間。アプリケーションが多くの関数を持っている場合には、この表示方法は有用です。ひとつのソースファイルのすべてのデータが一緒に表示されます。 注意 : 実行対象の一部 (共有ライブラリを含む) が -g オプションによってコンパイルされていない場合、関数とその関数を含むファイルとの関連情報が足りない場合もあります。 |
ロードオブジェクト |
テキストセグメントの実行に費やす時間 |
「累計」表示画面に含める標本は、以下の 3 通りの方法で選択できます。
「標本の範囲」テキストフィールドに標本番号を直接入力する。各番号はカンマで区切り (例 : 1,3,6) 、範囲はハイフンによって指定 (例 : 1-6) する。
「概要」表示画面上で、対象となる標本が含まれるカラムを選択します。
「概要」表示画面上で、「表示」メニューから「すべてを選択」または「選択解除」を選択して、実験データの全標本を含めるかまたは除外します。
「累計」表示画面に含めるセグメントを選択するには、「表示」メニューの 「ファイルから取り込むセグメント」コマンドを選択し、「ファイルから取り込むセグメント」ダイアログボックスを開きます。そして、任意のセグメントを選択し、「適用」ボタンをクリックするか、「すべてを選択」ボタンをクリックして全セグメントを選択します。
「累計」 表示画面をソートするには、「表示」メニューの 「ソート基準」コマンドを選択し、「値」または「名前」を選択します。
特定の名前を検索するには、「表示」メニューの「検索」コマンドを選択し、「検索」ダイアログボックスを開きます。そして、検索文字列をテキストフィールドに入力し、「適用」ボタンをクリックします。
「アドレス空間」表示画面によって、アプリケーションが最も集中的に利用するメモリ (修正および参照ページ) を示すことができます。また、実験がアプリケーションのすべての関数を試すわけではないため、あるいは、アプリケーションに無駄なコードやメモリ割り当ての問題などが含まれているなどの理由から、未使用となっているメモリも識別します。
「アドレス空間」表示画面形式は、アドレス空間データを収集する場合のみ、データを提示します。アドレス空間データが収集されていない場合、標本アナライザ画面の下部にその旨を告げるメッセージが表示されます。
「アドレス空間」表示画面では、アプリケーションが使用するメモリを以下のカテゴリに分類しています。
表 2-7 標本アナライザが表示するメモリのカテゴリ
変更 |
アプリケーションの実行中に書き込まれるページ。参照されることも、参照されないこともある。 |
参照 |
アプリケーションに読み取られるページあるいはアプリケーションによって実行される命令を含むページ |
参照なし |
アプリケーションによって変更も参照もされないページ |
「アドレス空間」表示画面は、個々の正方形 (ページ) または長方形 (セグメント) からなる列と行とで構成されます。そして、列と行にはメモリ内のアドレスを示す番号が付けられています。空白部分は、アプリケーションが使用しないアドレス空間の領域を表しています。
SunOS は 4 K バイトあるいは 8 K バイトのページを使用します。ページのアドレスは 0x1000 (16 進数で表す 4 Kバイト) または 0x2000 (16 進数で表す 8 Kバイト) の倍数です。
システムのページサイズを確認するには、プロンプトから次のように入力してください。
% pagesize
この pagesize コマンドはページサイズをバイト単位で返します。
4096 (4 K バイトページ)
8192 (8 K バイトページ)
ページサイズが 4 Kバイトの場合、行当たりのページ数は 16 です。ページサイズが 8 K バイトの場合、行当たりのページ数は 8 です。
ページを含む行と列の 16 進数値を組み合わせることで、そのページのアドレスを知ることができます。たとえば、確認中のページが第 4 行 (0004__00) 、第 2 列 (20) にあるなら、そのページのアドレスは 00042000 となります。
「アドレス空間」表示画面において、メモリ単位を異なる細分性レベルで表示するには、「表示形式」領域で「ページ」または「セグメント」を選択します。
選択されたページおよびセグメントには影が付けられ、浮き出して表示されます。選択したページ上でマウスの左ボタンを押し続けると、そのページを含むセグメントも表示され、影が付けられます。同様に、選択したセグメント上でマウスの左ボタンを押し続けると、そのセグメント内に含まれるページが表示され、選択されます。
選択したページまたはセグメントのプロパティに関する情報を表示するには、「表示」メニューの「詳細表示」コマンドを選択し、以下の情報を含む「ページ属性」ダイアログボックスを開きます。
アドレス
バイト単位のページサイズまたはセグメント範囲サイズ
そのページまはたセグメントに含まれる関数
セグメント名
「アドレス空間」表示画面に含める標本は、以下の 3 通りの方法で選択できます。
「標本の範囲」テキストフィールドに標本番号を直接入力する。各番号はカンマ で区切り (例 : 1,3,6)、範囲はハイフンによって指定 (例 : 1-6) する。
「概要」表示画面上で、対象となる標本が含まれるカラムを選択する。
「概要」表示画面上で、「表示」メニューから「すべてを選択」または「選択解除」を選択して、実験データの全標本を含めるかまたは除外する。
「統計」表示画面には、アプリケーションの全体的なパフォーマンスおよびシステム資源利用方法などのデータが表示されます (図 2-9 を参照) 。一方、「ヒストグラム」、「累計」、「アドレス空間」表示形式は、関数やページなどのプログラムコンポーネントごとに区分けされたデータを提示します。「統計」表示画面が提供する情報は、予想した見積りと実際の数値とを比較したい場合などに便利です。
「統計」表示画面の生成に必要な情報は、データの収集処理中、常時標本コレクタによって生成されるため、この表示画面に情報を表示するために、特別なデータの種類を指定する必要はありません。「統計」表示画面には、以下の情報が表示されます。
表 2-8 標本アナライザの「統計」表示画面に表示される情報
副ページフォルト数 |
物理的な I/O 活動を必要としないページフォルトの数 |
主ページフォルト数 |
物理的な I/O 活動を必要とするページフォルトの数 (数が非ゼロの場合、「概要」表示画面には、テキストページあるいはデータページフォルトの待ち時間が表示されます) |
プロセススワップ数 |
処理がメインメモリ外にスワップされる回数 |
入力ブロック数 |
非キャラクタあるいは特殊ファイル上でシステムコール read( ) が実行される回数 |
出力ブロック数 |
非キャラクタあるいは特殊ファイル上でシステムコール write( ) が実行される回数 |
送信メッセージ数 |
ソケットを越えて送信されるメッセージ数 |
受信メッセージ数 |
ソケットから受信されるメッセージ数 |
処置されたシグナル数 |
配信または受信されるシグナル数 |
自発的コンテキストスイッチ数 |
分配された時間が完了する前に、処理が自発的にプロセッサを放棄して、利用可能な資源を待つために起こるコンテキストスイッチの回数 |
非自発的コンテキストスイッチ数 |
優先順位がより高い処理が実行可能になるか、現在の処理が分配された時間を超過してしまったために起こるコンテキストスイッチの回数 |
システムコール数 |
システムコールの総数 |
I/O 文字数 |
読み取りおよび書き込みコールによって、キャラクタデバイスまたはファイル間で転送されるキャラクタ数 |
ワーキングセット合計サイズ(ページ) |
アドレス空間の総サイズ (ページ単位) |
ワーキングセット最大サイズ(ページ/標本) |
アドレス空間の最大サイズ (標本あたりのページ数) |
ワーキングセット最小サイズ(ページ/標本) |
アドレス空間の最小サイズ (標本あたりのページ数) |
ワーキングセット平均サイズ(ページ/秒) |
アドレス空間の平均サイズ (標本あたりのページ数) |
テキストのワーキングセット合計サイズ(ページ) |
テキストアドレス空間の総サイズ (ページ単位) |
テキストのワーキングセット最大サイズ(ページ/標本) |
テキストアドレス空間の最大サイズ (標本あたりのページ数) |
テキストのワーキングセット最小サイズ(ページ/標本) |
テキストアドレス空間の最小サイズ (標本あたりのページ数) |
テキストのワーキングセット平均サイズ(ページ/秒) |
テキストアドレス空間の平均サイズ (標本あたりのページ数) |
非テキストのワーキングセット合計サイズ(ページ) |
非テキストアドレス空間の総サイズ (ページ単位) |
非テキストのワーキングセット最大サイズ(ページ/標本) |
非テキストアドレス空間の最大サイズ (標本あたりのページ数) |
非テキストのワーキングセット最小サイズ(ページ/標本) |
非テキストアドレス空間の最小サイズ (標本あたりのページ数) |
非テキストのワーキングセット平均サイズ(ページ/秒) |
非テキストアドレス空間の平均サイズ (標本あたりのページ数) |
アドレス空間データが収集されている場合のみ、ワークセットサイズは非ゼロになります。
「統計」表示画面に含める標本は、以下の 3 通りの方法で選択できます。
「標本の範囲」テキストフィールドに標本番号を直接入力する。各番号はカンマで区切り (例 : 1,3,6)、範囲はハイフンによって指定 (例 : 1-6)する。
「概要」表示画面上で、対象となる標本が含まれるカラムを選択する。
「概要」表示画面上で、「表示」メニューから「すべてを選択」または 「選択解除」を選択して、実験データの全標本を含めるかまたは除外する。