_PGOPTI_Set_Interval_Prof_Dump() 関数は、インターバル・プロファイル・ダンプをアクティブにし、ダンプ発生時のおおよその頻度を設定します。この関数は、非終了アプリケーションで使用します。
この関数呼び出しのプロトタイプは次のとおりです。
構文 |
---|
void _PGOPTI_Set_Interval_Prof_Dump(int interval); |
この関数は、非終了アプリケーションで使用します。
interval パラメーターは、プロファイルのダンプが発生する時間の間隔 (ミリ秒単位) で指定します。例えば、インターバルが 5000 として設定された場合、プロファイル・ダンプとリセットは約 5 秒ごとに行われます。ダンプとリセットの時間測定は、アプリケーションのインストルメントされた関数の実行時に行われるため、インターバルはおおよそとなります。
インターバルを 0 または負の数に設定すると、インターバル・プロファイルのダンプは無効になります。インターバルを非常に小さな値に設定すると、インストルメント済みのアプリケーションがプロファイル情報のダンプにほとんどの時間を費やしてしまう場合があります。インターバルには、できるだけ大きな値を設定し、アプリケーションが本来の作業を行え、十分なプロファイル情報が収集されるようにします。
次の例では、非終了コードでインターバル・プロファイルのダンプを使用する 1 つの方法を示します。
例 |
---|
#include <stdio.h> // The next include is to access // _PGOPTI_Set_Interval_Prof_Dump_All #include <pgouser.h> int returnValue() { return 100; } int main() { int ans; printf("CTRL-C to quit.\n"); _PGOPTI_Set_Interval_Prof_Dump(5000); while (1) ans = returnValue(); } |
次のようなコマンドを入力して、上記のコードをコンパイルできます。
オペレーティング・システム |
例 |
---|---|
Linux* および Mac OS* X |
icc -prof-gen -o intrumented_number number.c |
Windows* |
icl /Qprof-gen /Feinstrumented_number number.c |
コンパイル時に、上記のコードはプログラムが終了するまで約 5 秒ごとにプロファイル情報を .dyn ファイルにダンプします。
profmerge ツールを使用して .dyn ファイルをマージできます。
この関数を、非終了ユーザー・アプリケーションの開始時に呼び出して、インターバル・プロファイル・ダンプを開始します。INTEL_PROF_DUMP_INTERVAL 環境変数をアプリケーションが開始する前に必要な interval の値に設定して、インターバル・プロファイル・ダンプを開始することもできます。
インターバル・プロファイル・ダンプを使用すると、ソースコードをほんの少し変更するだけで非終了アプリケーションをプロファイルできるようになります。