_PGOPTI_Prof_Dump_All() 関数は、インストルメント済みアプリケーションによって収集されたプロファイル情報をダンプします。この関数呼び出しのプロトタイプは次のとおりです。
構文 |
---|
void _PGOPTI_Prof_Dump_All(void); |
この関数の以前のバージョン、_PGOPTI_Prof_Dump() でもプロファイル情報をダンプできます。Linux* でプログラムを終了するために共有ライブラリー (.so) および exit() と関連して使用された場合を除いて、以前の関数は _PGOPTI_Prof_Dump_All() のように動作します。_PGOPTI_Prof_Dump_All() がプログラムを終了するために _exit() の前に呼び出された場合、新しい関数は .dyn ファイルを作成する必要があるすべての共有ライブラリーで .dyn ファイルが作成されることを保証します。Linux での移植性および正確な動作のためには、_PGOPTI_Prof_Dump_All() を使用してください。
プロファイル情報は、.dyn ファイル (PGO のフェーズ 2 で生成) に作成されます。
ユーザー・アプリケーションを終了する関数本体にこの関数への呼び出しを挿入します。通常、_PGOPTI_Prof_Dump_All() の呼び出しは、一度だけでなければなりません。この関数を _PGOPTI_Prof_Reset() 関数とともに使用して、(入力データの複数のセットから) 複数の .dyn ファイルを作成できます。
例 |
---|
! Selectively collect profile information ! for the portion of the application ! involved in processing input data. input_data = get_input_data() do while (input_data) call _PGOPTI_Prof_Reset() call process_data(input_data) call _PGOPTI_Prof_Dump_All() input_data = get_input_data() end do end program |
ここでは、Fortran から C PGO API ルーチンを呼び出す方法の一例を紹介します。
PGO のインストルメント済みプログラムの実行フェーズの一環として、インストルメント済みプログラムはプロファイル・データを動的情報ファイル (.dyn ファイル) に書き込みます。
プロファイル情報ファイルは、インストルメント済みプログラムが PROGRAM() から正常に戻るか、または標準的な exit 関数を呼び出した後に書き込まれます。
プログラムが正常に終了しない場合に備えて、_PGOPTI_Prof_Dump_All 関数を用意しています。-prof-gen (Linux および Mac OS X) または /Qprof-gen (Windows) オプションを使用するインストルメンテーション・コンパイル時において、次のような手法を使用し、この関数への呼び出しをプログラムに追加できます。
例 |
---|
interface subroutine PGOPTI_Prof_Dump_All() !DEC$attributes c,alias:'PGOPTI_Prof_Dump_All'::PGOPTI_Prof_Dump_All end subroutine subroutine PGOPTI_Prof_Reset() !DEC$attributes c,alias:'PGOPTI_Prof_Reset'::PGOPTI_Prof_Reset end subroutine end interface call PGOPTI_Prof_Dump_All() |
-prof-use (Linux および Mac OS X) または /Qprof-use (Windows) オプションを使用してフィードバック・コンパイルを実行する前に、この呼び出しを削除するか、コメントアウトしなければなりません。