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():
    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/ に書かれている。