インテル® C++ コンパイラー 18.0 デベロッパー・ガイドおよびリファレンス

プロファイル情報のダンプ

_PGOPTI_Prof_Dump_All() 関数は、インストルメント済みアプリケーションによって収集されたプロファイル情報をダンプします。この関数呼び出しのプロトタイプは次のとおりです。

構文

void _PGOPTI_Prof_Dump_All(void);

この関数の以前のバージョン _PGOPTI_Prof_Dump() は廃止されたため、使用することはできません。

Linux* システムでプログラムを終了するために共有ライブラリー (.so) 関数と関連して使用される場合を除いて、新しい関数 _PGOPTI_Prof_Reset_All() は古い関数 _PGOPTI_Prof_Reset() のように動作します。_PGOPTI_Prof_Dump_All() が呼び出されると、.dyn ファイルを作成する必要があるすべての共有ライブラリーで .dyn ファイルが作成されることを保証します。Linux* での移植性および正確な動作のためには、_PGOPTI_Prof_Dump_All() を使用してください。

プロファイル情報は、.dyn ファイル (PGO のフェーズ 2 で生成) に作成されます。

_PGOPTI_Prof_Dump_All() 関数に影響を与える環境変数は PROF_DIR、COV_DIR、PROF_DPI、COV_DPI です。PROF_DIR/COV_DIR 環境変数は .dyn ファイルが保存されるディレクトリーを指定します。または、[Q]prof-gen を指定してビルドする場合、[Q]prof_dir コンパイラー・オプションを使用して PROF_DIR/COV_DIR 変数を使用せずにこのディレクトリーを指定できます。PROF_DPI/COV_DPI 環境変数は代替 .dpi ファイル名を指定します。デフォルトのファイル名は pgopti.dpi です。または、.dyn ファイルをマージする場合、-prof_dpi ツールオプションを使用して、.dpi サマリーファイル名を指定できます。

推奨する使用方法

アプリケーションで標準の exit() 呼び出しを使用しない場合、ユーザー・アプリケーションを終了する関数本体にこの関数への呼び出しを挿入します。通常、_PGOPTI_Prof_Dump_All() の呼び出しは、一度だけでなければなりません。この関数を _PGOPTI_Prof_Reset() 関数とともに使用して、(入力データの複数のセットから) 複数の .dyn ファイルを作成できます。

ダンプとダンプの間に _PGOPTI_Prof_Reset_All() 関数を呼び出してデータをリセットしないと、カウンターはデータを集計し続け、その結果、後続の .dyn ファイルに以前にダンプされたデータが含まれてしまいます。

#include <pgouser.h>
void process_data(int foo) {}
int  get_input_data() { return 1; }
int  main(void)
{
// 入力データの処理に関連したアプリケーション領域の
// プロファイル情報を収集
  int input_data = get_input_data();
  while (input_data) {
    _PGOPTI_Prof_Reset All();
    process_data(input_data);
    _PGOPTI_Prof_Dump_All();
    input_data = get_input_data();
  }
  return 0;
}