Oracle Solaris Studio のフィードバックプロファイリングを使用すると、アプリケーションのバイナリを最適化できます。フィードバックプロファイリングでは、アプリケーションを 2 回 (プロファイルデータ収集のために 1 回、そのプロファイルを使用した最適なコード生成のために 1 回) ビルドします。この使用例では、次のフィードバックプロファイリングの手順を使用しています。
環境変数 SUN_PROFDATA_DIR を設定して、生成されるプロファイルディレクトリの場所を指定します。
# setenv SUN_PROFDATA_DIR /tmp/consolidate
プロファイルディレクトリは、/tmp/consolidate フォルダに格納されます。
環境変数 SUN_PROFDATA を設定して、製品のプロファイルデータを単一のファイルに記録します。
# setenv SUN_PROFDATA singlefeedbin.profile
プロファイルデータは、singlefeedbin.profile ファイルに格納されます。
–xprofile オプションを使用してバイナリをコンパイルします。
-xprofile={collect,tcov}:xxx.profile
–collect オプションはプログラムに関するデータ収集に役立ち、–tcov オプションはプログラムの実行後にコードカバレージを提供します。
リアルタイム環境を模した典型的なワークロードを使用してアプリケーションを実行します。
プログラムのこのような実行中の動作に関する情報は、ステップ 2 で作成した .profile ディレクトリに保存されます。
profile データを使用して、バイナリを再コンパイルします。
-xprofile=use:/path/to/xxx.profile
–use オプションは、プロファイルデータに基づいて次の最適化を実行します。
コードのレイアウト
レジスタの割り当て
ループの変換
分岐の最適化
ブロックの整理
switch case コードの生成
グローバル命令のスケジューリング
遅延スロットのスケジューリング
分岐の予測