PROFIL(3)

名前
profil - 実行時間プロファイル (profile)

書式
#include <unistd.h>

int profil(unsigned short *buf, size_t bufsiz,
           size_t offset, unsigned int scale);

glibc 向けの機能検査マクロの要件 (feature_test_macros(7) 参照):

profil(): _BSD_SOURCE || (_XOPEN_SOURCE && _XOPEN_SOURCE < 500)

説明
このルーティンはプログラムのどこの部分で時間を費やしているかを調べる 手段を提供する。引き数 buf は bufsiz バイトのメモリーを指している。仮想の 10 ミリ秒ごとに、ユーザーの プログラムカウンター (PC) が検査される: offset が引かれ、その結果が scale 倍され 65536 で割られる。 結果が bufsiz より小さい場合は buf の対応するエントリーがインクリメントされる。 buf が NULL ならば、プロファイル (profile) は無効にされる。

返り値
常に 0 が返される。

準拠
SVr4 のコールに似ている (しかし POSIX.1-2001 ではない)。

バグ
profil() は ITIMER_PROF インターバルタイマーも使用しているプログラムでは使用できない (setitimer(2) 参照)。 本当のカーネルプロファイルはより正確な結果を与える。 libc 4.4 にはシステムコール profil を提供するための カーネルパッチが含まれていた。

関連項目
gprof(1), sprof(1), setitimer(2), sigaction(2), signal(2)

この文書について
この man ページは Linux man-pages プロジェクトのリリース 3.79 の一部である。 プロジェクトの説明とバグ報告に関する情報は http://www.kernel.org/doc/man-pages/ に書かれている。