Solaris[tm] オペレーティング環境下で動作するプログラムであれば、ほぼすべてのパフォーマンスデータを収集でき、関数および逆アセンブルレベルでのデータをパフォーマンスアナライザで見ることができます。 ここでは、パフォーマンスアナライザの機能を充分に利用するために選択すべきオプション、また、逆に使用すべきではないオプションについて説明します。
ソース行レベルでデータを参照するには、Fortran と C プログラムの場合は -g オプションを、 C++ プログラムの場合は -g または -g0 オプションを、他の必要なオプションと共に指定してコンパイルする必要があります。 -g オプションを指定してコンパイルしても、 O2 および O3 レベルでの末尾呼び出し最適化を除き、最適化状態は変わりません。
なんらかの理由によって、オブジェクト (.o) ファイルを移動または削除する必要がある場合は、-xs オプションを指定してプログラムをリンクできます。 このオプションを指定すると、ソースファイルに関するすべての情報が実行可能ファイルに書き込まれます。 このオプションを指定すれば、解析を始める前に実験やプログラムに関連するファイルを新しい位置に移動する、などの処理が簡単に実行できます。
-E または -P コンパイルオプションを指定して中間ファイルを生成した場合、パフォーマンスアナライザは元のソースファイルではなく中間ファイルを注釈付きソースコード用に使用します。 -E オプションによって生成された #line 指示は、ソース行に対するメトリックの割り当て時に問題が発生する原因になることがあります。
Java[tm] コード向けのソースレベル情報は、このリリースではサポートされていません。
使用してはいけないコンパイラオプションを以下に示します。
これらのオプションは動的リンクを無効にします。 パフォーマンスデータは、動的リンクの張られたライブラリから収集されるので、この動的リンクを無効にしてしまうとパフォーマンスデータを収集できなくなります。 また、libc が静的にリンクされていると、いくつかのデータ収集の機能が失われます。
これらのオプションを使用すると、コレクタが呼び出しスタック情報を取得できなくなり、パフォーマンスアナライザでは関数に対するメトリックの信頼性が一部を除いて失われます。
これらのオプションを使用すると、コレクタが呼び出しスタック情報を取得できなくなり、パフォーマンスアナライザでは関数に対するメトリックの信頼性が一部を除いて失われます。
注: ここでいう「IA」とは、 Pentium、Pentium Pro、Pentium II、Pentium II Xeon、Celeron、Pentium III、および Pentium III Xeon プロセッサ、またはその互換性のある AMD および Cyrix 社製のマイクロプロセッサチップを含んだ Intel 32 ビットプロセッサアーキテクチャを示します。