インテル® C++ コンパイラー 15.0 ユーザー・リファレンス・ガイド
プロファイル情報生成サポート (Profile Information Generation Support、Profile IGS) では、プロファイルに基づいた最適化のインストルメント済みの実行フェーズ中にプロファイル情報の生成を制御できます。
関数のセットおよび環境変数が Profile IGS を構成します。このセクションの残りのトピックでは、関連する関数および環境変数について説明します。
[Q]prof-gen オプションによるコンパイルの際、コンパイラーは _PGO_INSTRUMENT プリプロセッサー・マクロに define を設定し、コードをインストルメントします。 インストルメンテーションがされていないと、Profile IGS 関数は PGO API サポートを提供できません。
通常、プロファイル情報は、インストルメント済みアプリケーションが、標準的な exit() 関数を呼び出してアプリケーションを終了したときにインストルメント済みアプリケーションによって生成されます。
プロファイル情報の生成を確実にするには、このセクションで説明される関数が必要となる場合があり、また次の状況で役立ちます。
Profile IGS 関数は、関数が使用されるソースファイルの先頭に pgouser.h ヘッダーファイルを挿入することによりアプリケーションで使用できます。
例 |
---|
#include <pgouser.h> |
インストルメンテーション・ステップを完了した際、Profile IGS API 関数をコードから削除する必要はありません。この段階でソースコードを変更すると、修正されたルーチンのプロファイル・データ・フィードバックの取得を妨げることがあります。インストルメンテーション・ステップでは ([Q]prof-gen または [Q]prof-genx オプション使用)、_PGO_INSTRUMENT マクロの定義は自動的に設定され、インストルメンテーション・ライブラリー・ルーチンが使用されるようになります。 プロダクション・ステップでは ([Q]prof-use オプション使用)、_PGO_INSTRUMENT マクロの定義は削除され、プロファイル・データがフィードバックされるようになります。
Profile IGS の環境変数は、INTEL_PROF_DUMP_INTERVAL です。 この環境変数は、インストルメント済みのユーザー・アプリケーションでインターバル・プロファイル・ダンプに使用されることがあります。