profil -
実行時間プロファイル
(profile)
#include <unistd.h>
int profil(unsigned short *buf, size_t bufsiz,
size_t offset, unsigned int scale);
profil():
glibc 2.21 以降:
_DEFAULT_SOURCE
glibc 2.19 と 2.20:
_DEFAULT_SOURCE || (_XOPEN_SOURCE && _XOPEN_SOURCE < 500)
glibc 2.19 以前:
_BSD_SOURCE || (_XOPEN_SOURCE && _XOPEN_SOURCE < 500)
このルーティンはプログラムのどこの部分で時間を費やしているかを調べる
手段を提供する。引数
buf は
bufsiz
バイトのメモリーを指している。仮想の
10
ミリ秒ごとに、ユーザーの
プログラムカウンター
(PC) が検査される:
offset
が引かれ、その結果が
scale 倍され 65536
で割られる。 結果が
bufsiz より小さい場合は
buf
の対応するエントリーがインクリメントされる。
buf が NULL
ならば、プロファイル
(profile) は無効にされる。
常に 0 が返される。
この節で使用されている用語の説明については、
attributes(7) を参照。
インターフェース |
属性 |
値 |
profil() |
Thread safety |
MT-Unsafe |
SVr4 のコールに似ている
(しかし POSIX.1 ではない)。
profil() は
ITIMER_PROF
インターバルタイマーも使用しているプログラムでは使用できない
(
setitimer(2) 参照)。
本当のカーネルプロファイルはより正確な結果を与える。
gprof(1),
sprof(1),
setitimer(2),
sigaction(2),
signal(2)
この man ページは Linux
man-pages
プロジェクトのリリース
5.10
の一部である。プロジェクトの説明とバグ報告に関する情報は
https://www.kernel.org/doc/man-pages/
に書かれている。