簡単なプロファイル・メカニズムを利用して、アプリケーション・バイナリーにインストルメント・コードを挿入する際にオーバーヘッドなしで、多くの利点を得ることができます。これは、コード/データサイズの増加やインストルメンテーションによる実行時のコード変更によって、通常のプロファイルに基づく最適化 (PGO) が実行不可能な場合に役立ちます。このアプローチでは、インテル® VTune™ プロファイラーを使用してハードウェア・カウンターから情報を収集する必要があります。情報は最小のオーバーヘッドで収集され、コンパイラーによって生成されるデバッグ情報と合わせて、最適化の主要コードパスを特定します。
このアプローチは、次のステップに従って使用します。
このオプションは、ハードウェア・カウンターから収集された情報を特定のソースコードにマップするのに使用される、追加のデバッグ情報を生成するようにコンパイラーに指示します。インストルメント済み PGO とは異なり、このオプションは生成される命令シーケンスに影響しません。このビルド時に最適化が有効になることがありますが、関数のインライン展開は無効にすることを推奨します。
<installation-root>/bin64/amplxe-pgo-report.sh <your application and command line>
データ収集オプションに関する詳細は、インテル® VTune™ プロファイラーのドキュメントにあります。このステップでは、rNNNpgo_icc.pgo 形式のファイルを生成します (NNN は 3 桁の数字)。これらのファイルは、後続のステップの入力として使用されます。
profmergesampling ツールを使用して、結果のインデックス付きファイルを生成し、次のステップでデータを高速に処理することができます。
profmergesampling -file <input-file[:input_file]*> -out <output_name>
このステップでは、ステップ 2 で生成された 1 つ以上の結果ファイル (またはステップ 3 で生成されたインデックス付きファイル) をコンパイラーに渡して、最適化を指示することができます。