MONCONTROL(3)

名称
moncontrol, monstartup - 実行プロファイルの制御

書式
#include <sys/types.h> int moncontrol(int mode) int monstartup(u_long *lowpc, u_long *highpc)

解説
cc(1) の -pg オプションでコンパイルした実行可能プログラムには、 gprof(1) 呼出しグラフ実行プロファイラの統計情報を収集するための関数呼出しが自動的に 組み込まれます。典型的なオペレーションの場合、プロファイル採取はプログラムの 起動時に始まり、プログラム呼出しが終了したときに終わります。プログラムが 終了すると、プロファイリングデータはファイル progname.gmon に書き込まれ (progname はプログラムの名前)、 gprof(1) で結果が検査されます。

moncontrol() は、プログラムでのプロファイル取得を選択的に制御します。 プロファイル取得は、プログラムが起動されると始まります。 ヒストグラムティック値と関数呼び出し回数の収集を止めるには moncontrol(0) を使用し、ヒストグラムティック値と関数呼び出し回数の収集を再開するには moncontrol(1) を使用します。この機能により、特定のオペレーションのコストが計測できます。 プログラムの終了時には、 moncontrol() の状態に関係なく出力ファイルが作成されることに注意してください。

-pg でロードしていないプログラムでも、プロファイルを取得する アドレスの範囲を指定して monstartup() を呼び出し、プロファイリング統計情報を選択的に収集することができます。 サンプル抽出するアドレスの範囲は、 lowpc と highpc で指定します。 サンプル抽出される最下位アドレスは lowpc で、最上位アドレスは highpc のすぐ下になります。出力の呼出しグラフに表示されるのは、この範囲のうち、 cc(1) の -pg オプションでコンパイルした関数のみですが、実行時間が計測されるのは、 このアドレス範囲のすべての関数です。プロファイル採取は、 monstartup() から戻ったときに始まります。
progname.gmon 実行データファイル

関連項目
cc(1), gprof(1), profil(2), clocks(7)