MICROTIME(9)

名称
microtime, getmicrotime, nanotime, getnanotime - 現在時刻の取得

書式
<sys/time.h> void microtime(struct timeval *tv) void getmicrotime(struct timeval *tv) void nanotime(struct timespec *ts) void getnanotime(struct timespec *tsp)

解説
microtime() および getmicrotime() 関数は、 tv によって指定されたアドレスに、 timeval 構造体として、システム時刻を保存します。 nanotime() および getnanotime() 関数は、同じ作用を実行しますが、代りに timespec 構造体として時刻を記録します。

microtime() および nanotime() は、可能な限り正確な現在時刻を返す時刻カウンタを、常に請求します。 それに反して、 getmicrotime() および getnanotime() 関数は、正確ではないが高速に得られる時刻を代りに返し得る抽象化です。 この振舞いは、kern.timecounter.method sysctl 変数により、 切り替えることができます。

0   高速なコード実行を選択して、正確さを犠牲にします。

1   ( microtime() または nanotime() の呼び出しと同等の) より正確な時刻を返します。

getmicrotime() および getnanotime() 関数の意図は、タイマの正確さ対実行時間のユーザの好みを強化することです。

関連項目
getmicrouptime(9), getnanouptime(9), microuptime(9), nanouptime(9), tvtohz(9)

診断
バグのあるハードウェアは kern.timecounter.method が 0 に設定されている時に、 "calcru negative..." を起こすことがあります。

歴史
microtime および nanotime 関数は FreeBSD 3.0 で初めて登場しましたが、別の形で 4.4BSD から存在していました。

作者
このマニュアルページは Kelly Yancey <kbyanc@posi.net> が書きました。