GNU時間を使用したミリ秒の印刷

GNU時間を使用したミリ秒の印刷

私は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。もう一つのことは、この数字が実際にどれほど正確であるかです。

おすすめ記事