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), setitimer(2), sigaction(2), signal(2)

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