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

A.2.170 -xprofile=p

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

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

プロファイルの収集は、マルチスレッド対応のアプリケーションにとって安全です。すなわち、独自のマルチタスク (-mt) を実行するプログラムをプロファイリングすることで、正確な結果が得られます。このオプションは、-xO2 以上の最適化のレベルを指定した場合にのみ有効です。

A.2.170.1 値

p は次のいずれかでなければいけません。

相互の関連性

-xprofile=tcov オプションと -xa オプションは、同じ実行可能ファイル内に指定することができます。すなわち、-xprofile=tcov でコンパイルされたファイルと -xa でコンパイルされたファイルが両方含まれたプログラムをリンクすることができます。1 つのファイルを両方のオプションでコンパイルすることはできません。

-xinline-xO4 を使用したために、関数のインライン化が行われている場合は、-xprofile=tcov によって生成されたコードカバレージ報告は信用できない可能性があります。

環境変数の $SUN_PROFDATA$SUN_PROFDATA_DIR を設定して -xprofile=collect を指定してコンパイルされたプログラムがどこにプロファイルデータを入れるかを制御できます。これらの変数をまだ設定していない場合は、プロファイルデータは現在のディレクトリの name.profile/feedback に書き込まれます (name は実行ファイルの名前または -xprofile=collect:name フラグで指定された名前)。これらの変数が設定されると、-xprofile=collect データは $SUN_PROFDATA_DIR/$SUN_PROFDATA に書き込まれます。

$SUN_PROFDATA 環境変数と $SUN_PROFDATA_DIR 環境変数は、tcov によって書き込まれたプロファイルデータファイルのパスと名前を制御します。詳細は、tcov(1) のマニュアルページを参照してください。

警告

別々の手順でコンパイルしてリンクする場合は、コンパイル手順とリンク手順で同じ -xprofile オプションを表示する必要があります。1 つの手順で -xprofile を取り込み、もう 1 つの手順で除外すると、プログラムの正確さは損なわれませんがプロファイルを行えなくなります。

Linux プラットフォームで共有ライブラリを構築するときは、-xprofile=collect または -xprofile=tcov を、-G とともに使用するべきではありません。

関連項目

-xatcov(1) のマニュアルページ『プログラムのパフォーマンス解析