ハイパフォーマンスのアプリケーションを開発するには、コンパイラ機能を組み合わせたり、最適化されたルーチンのライブラリ、パフォーマンス解析のためのツールが必要です。
Sun Studio ソフトウェアでは、プログラムのパフォーマンスデータを収集し、分析するための高度なツールが提供されています。
コレクタは、プロファイリングとよばれる統計ベースでパフォーマンスデータを収集します。 そのデータには、呼び出しスタックの統計プロファイル、スレッド同期遅延イベント、ハードウェアカウンタのオーバーフロープロファイル、アドレス空間データ、およびオぺレーティングシステムの要約情報を含めることができます。
パフォーマンスアナライザは、ユーザーが情報を調査できるように、標本コレクタにより記録されたデータを表示します。 アナライザはデータを処理し、関数、呼び出し元 - 呼び出し先、ソース行、分解指示、プログラムのレベルでさまざまなパフォーマンスメトリックを表示します。これらのメトリックは、次の 3 つのグループに分類されます。時間ベースの測定基準、同期遅延測定基準、およびハードウェアカウンタ測定基準です。
また、パフォーマンスアナライザを使用すれば、アプリケーションのアドレス空間での関数のロード順序を改善するためのマップファイルを作成することで、アプリケーションのパフォーマンスを細かく調整できます。
これら 2 つのツールは、次のような質問に答えるのに役立ちます。
プログラムが使用するリソースはどれくらいですか?
リソースの大部分を使用するのはどの関数またはロードオブジェクトですか?
リソースの大部分を使用するのはどのソース行や逆アセンブリ命令ですか?
プログラムはどのようにして実行時の現在のポイントに達しますか?
関数やロードオブジェクトによってどのリソースが使用されていますか?
パフォーマンスアナライザのメインウィンドウは、各関数の排他的および組み込みメトリック (計測データ) を持つプログラムの関数リストを表示します。リストは、ロードオブジェクト、スレッド、軽量プロセス (LWP) およびタイムスライスによりフィルタ処理できます。選択された関数に対し、subsidiary ウィンドウは関数の呼び出し先と呼び出し元を表示します。このウィンドウは呼び出しツリーを操作するのに使用できます。 たとえば、高いメトリック値の検索などです。さらに 2 つのウィンドウが、行ごとにパフォーマンスメトリックの注釈付きのソースコードや、コンパイラコメントでインタリーブされたソースコード、各命令にメトリックの注釈付きの逆アセンブリコードを表示します。ソースコードやコンパイラコメントは、可能な場合に、命令によりインタリーブされます。
ソフトウェア開発者にとってパフォーマンスのチューニングが主な仕事でないとしても、コレクタとアナライザはソフトウェア開発者向けに設計されています。これらは、一般的に使用されているプロファイルツール prof と gprof より柔軟性のある、詳細で正確な解析を提供し、gprof の属性エラーに依存しません。
使用可能なコレクタとアナライザのコマンド行等価ユーティリティーは、次のとおりです。
collect (1) コマンドを使用して、データ収集を行うことができます。
collector サブコマンドを使用して、データ収集を dbx から実行できます。
コマンド行ユーティリティーの er_print (1) は、さまざまなアナライザ表示の ASCII バージョンを出力します。
コマンド行ユーティリティー er_src (1) はソースおよび逆アセンブリコードリストをコンパイラのコメント付きで、パフォーマンスデータなしで表示します。
詳細については、Sun Studio のマニュアル『プログラムのパフォーマンス解析』を 参照してください。