なぜbash時間はGNU時間よりも正確なのですか?


12

buitin bashコマンドtimeは実行のミリ秒精度を提供し、GNU time(通常/ usr / bin / time)はセンチ秒精度を提供します。times(2)システムコールは、クロックで時間を与え、100クロック= 1秒(通常は)ので、精度はGNUのようなものですtime。質問は、bashが何timeを使用してより正確になるのかということです。


うーん...彼らは両方とも私のシステム上でミリ秒を与えます...(FC16)
ニコ

奇妙な。printf( "%d \ n"、sysconf(_SC_CLK_TCK)); 上で述べたように100でなければなりません。誰かが私に似た観察を持っています:dirac.org/linux/timeですが、まだ説明はありません。
ルカシュ創和

はい、実際にはそれが... 100を与える
ニコ

それから私はそれがなぜであるか見当がつかない。GNU時間は、sysconf(_SC_CLK_TCK)を使用して秒に変換する時間syscallを使用することになっています。
ルカシュ創和

FWIWあなたが「bash time」と言うとき、私はあなたがtimeそれが使用するのでBSDを意味すると仮定しますgetrusage
デニス

回答:


16

筋金入りのbashコードを調べた結果、bashがtime使用されgetrusage()、GNUがtime使用されることがわかりましたtimes()getrusage()マイクロ秒の解像度のため、はるかに正確です。

弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.