タイミング関数 、time
、clock
getrusage
、の中でclock_gettime
、どのような状況で使用する必要があるかを知るために、それらがどのように実装され、どのような戻り値が返されるかを明確に理解したいと思いますgettimeofday
。timespec_get
まず、壁時計の値を返す関数を、プロセスまたはスレッドの値を返す関数と比較して分類する必要があります。gettimeofday
壁時計の値を返し、渡されたパラメータに応じてclock_gettime
壁時計の値またはプロセスまたはスレッドの値を返します。プロセス値を返します。Clock
getrusage
clock
次に、2 番目の質問は、これらの関数の実装と、その結果としての精度に関するものです。これらの機能が使用するハードウェアまたはソフトウェアのメカニズム。
カーネル ティック (通常は 1 ミリ秒の長さ) のみを使用しているようでgetrusage
、その結果、ミリ秒よりも正確になることはありません。そうですか?次に、getimeofday
関数は利用可能な最も正確な基盤となるハードウェアを使用しているようです。結果として、その精度は通常、最近のハードウェアではマイクロ秒 (API のためにそれ以上になることはありません) です。についてはどうですかclock
、マニュアルページでは「近似」について述べていますが、それはどういう意味ですか? API はナノ秒単位ですclock_gettime
が、基盤となるハードウェアで許可されていれば、それほど正確にできるということですか? 単調性はどうですか?
他に機能はありますか?