私はGNU Timeを使ってベンチマークしており、リアルタイム、ユーザー時間、システム時間をミリ秒単位で測定したいと思います。つまり、基本2桁ではなく小数点以下3桁まで秒を測定したいと思います。 GNU時間はそのようなオプションを提供しますか?
ベストアンサー1
できないようですマニュアルページ実際にはさまざまなフォーマットオプションがリストされていますが、設定の正確性に関する規制はありません。たとえば、%e
と%S
は%U
常に小数点以下 2 桁まで出力するようです。
一方、Bashの組み込み機能はtime
小数点以下の桁数設定を最大3桁までサポートしているため、これを使用して目的の結果を得ることができます。環境TIMEFORMAT
変数は出力形式を制御します。
$ TIMEFORMAT='real: %3R user: %3U sys: %3S cpu: %P' bash -c 'time sleep 1.233'
real: 1.234 user: 0.000 sys: 0.000 cpu: 0.00
TIMEFORMAT
または、デフォルト出力にも3桁の数字が表示されますので、設定しないでください。しかし、分は分離されます。
$ bash -c 'time sleep 1.233'
real 0m1.234s
user 0m0.000s
sys 0m0.000s
これgetrusage()
システムコール与えられた時間はstruct timeval
最大マイクロ秒なので、より良い精度のために直接実装できるようですtime
。もう一つのことは、この数字が実際にどれほど正確であるかです。