Sun Studio 12: C ユーザーズガイド

B.2.131 -xprofile=p

このオプションを使用して実行頻度データを収集して保存すると、後続の実行ではそのデータを使用してパフォーマンスを向上させることができます。このオプションは、-xO2 以上の最適化のレベルを指定した場合にのみ有効です。

-xprofile は、コンパイル時ばかりでなく、リンク時にも指定する必要があります。表 A–2 に、コンパイル時とリンク時の両方に指定する必要があるコンパイラオプションの全一覧をまとめています。

高い最適化レベル (-xO5 など) を指定したコンパイルは、コンパイラに実行時のパフォーマンスフィードバックを提供することで拡張されます。実行時のパフォーマンスフィードバックを生成させるためには、-xprofile=collect を指定してコンパイルし、標準的なデータセットで実行可能ファイルを実行し、次に最高の最適化レベルと -xprofile=use を指定して再コンパイルします。

プロファイルの収集は、マルチスレッド対応のアプリケーションにとって安全です。すなわち、独自のマルチタスク (-mt) を実行するプログラムをプロファイリングすることで、正確な結果が得られます。

p には、collect[:<名前>]、use[:<名前>]、または tcov のいずれか 1 つを指定します。

-xprofile=collect を指定してプロファイルの収集用にコンパイルを行い、-xprofile=use を指定してプロファイルのフィードバック用にコンパイルを行う場合は、ソースファイルおよび -xprofile=collect-xprofile=use 以外のコンパイラオプションが両方のコンパイルで同一である必要があります。

-xprofile=use:<名前> オプションで指定するプロファイルのフィードバックのディレクトリ名を複数指定した場合は、コンパイラの 1 回の呼び出しですべて使用できます。たとえば、プロファイル対象のバイナリ abc を実行した結果、プロファイルのディレクトリa.profileb.profile c.profile が生成されたとします。


cc -O -c foo.c -xprofile=use:a -xprofile=use:b -xprofile=use:c
 

このとき、3 つのプロファイルのディレクトリがすべて使用されます。特定のオブジェクトファイルに関係する有効なプロファイルのフィードバックデータは、オブジェクトファイルのコンパイル時に、指定したフィードバックのディレクトリから累積されます。

-xprofile=collect-xprofile=use の両方を同一のコマンド行で指定した場合は、コマンド行で一番右側の -xprofile オプションは次のように適用されます。

関連項目: -xhwcprof-xprofile_ircache-xprofile_pathmap