Manpages

名 前

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)

説 明

こ の ル ー テ ィ ン は プ ロ グ ラ ム の ど こ の 部 分 で 時 間 を 費 や し て い る か を 調 べ る 手 段 を 提 供 す る 。 引 き 数 bufbufsiz バ イ ト の メ モ リ ー を 指 し て い る 。 仮 想 の 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/ に 書 か れ て い る 。