プロファイル指示フィードバックは、一般的なプログラム動作のデータ特性を持つコンパイラーを提供する、2 段階のコンパイル・プロセスです。 装備された実行可能ファイルは、任意の時間、さまざまなシナリオで実行され、副次作用としてプロファイル・データ・ファイルを作成します。 プロファイル・データを使用した 2 回目のコンパイルは、最適化された実行可能ファイルを作成します。
PDF は、条件付エラー処理またはインスツルメンテーションをまれにしか実行しなかったコードで主に使用されます。 この技法は、ファーム・プロファイル情報がない場合に中間的な効果を持っていますが、不十分な、または特性のない データしか使用可能でない場合はお勧めできません。
下の図は PDF プロセスを示しています。
プロセスの 2 つのステージは、コンパイラー・オプション -qpdf1 と -qpdf2 で制御されます。 ステージ 1 は最適化オプションの任意セットと -qpdf1 を使用した通常の コンパイルで、任意の時間、さまざまなシナリオで実行できる実行可能ファイルまたは共用オブジェクトを 作成します。 ステージ 2 は -qpdf1 の代わりに -qpdf2 を 使用すること以外は同じオプションを使用した再コンパイルで、その間コンパイラーは、パス偏向最適化の目的で以前に収集された データを消費します。
アプリケーションが異なるコード・セクションを実行する頻度の分析に基づいて、以下のようにアプリケーションを最適化できます。
最も頻繁に使用される関数を確認するには、次の作業を行います。
次のようにして、PDF ファイルの生成をさらに制御できます。
mergepdf -r 53 path1 -r 32 path2 -r 15 path3
PDF ディレクトリーの情報を消去するには、cleanpdf または resetpdf ユーティリティーを使用します。
-qpdf オプションは、条件付き分岐の周辺区域を微調整して、デフォルトの選択項目を最も可能性の 高い実行パスに対応させるのに役立ちます。 スローダウンを防ぐため、最も可能性の高い実行パスにある命令が、分岐の前に他の命令と並行して実行される場合もあります。
-qpdf オプションは余分なコンパイル・オーバーヘッドと代表的なデータを使用したサンプル実行を 必要とするため、開発サイクルの終わり近くで使用してください。