/ usr/bin/timeプログラムを使用して、コマンドの時間を測定します。 --formatパラメーターを使用すると、出力をフォーマットできます。例えば.
/usr/bin/time -f "%e" ls
経過秒数のより大きな精度を出力する方法はありますか?または、秒ではなくミリ秒を出力しますか?
/ usr/bin/timeのマニュアルでは、数秒程度しか書かれていませんが、方法があり、誰かが私を助けてくれます...ありがとう!
[〜#〜] edit [〜#〜]:環境変数「TIMEFORMAT」のフォーマットを使用するbashコマンド「time」について知っています。申し訳ありませんが、env-varを変更したくありません...私にはリスクがあるようです。解決策は、実行中のシステムをまったく変更しないものでなければなりません:)
1つの可能性は、date
コマンドを使用することです。
ts=$(date +%s%N) ; my_command ; tt=$((($(date +%s%N) - $ts)/1000000)) ; echo "Time taken: $tt milliseconds"
%N
nanoseconds を返す必要があり、1ミリ秒は1000000ナノ秒なので、除算では実行にかかった時間を返しますmy_command
ミリ秒。
[〜#〜]注[〜#〜]%N
すべてのシステムでサポートされているわけではありませんが、ほとんどのシステムでサポートされています。
便宜上、devnullの答えをスクリプトに入れました(ミリ秒の時間という名前を付けました)。
#!/bin/bash
ts=$(date +%s%N) ; $@ ; tt=$((($(date +%s%N) - $ts)/1000000)) ; echo "Time taken: $tt milliseconds"
スクリプトを/usr/local/bin
。
実行権限を付与するchmod +x /usr/local/bin/millisecond-time
。
これで、次のように使用できます:millisecond-time my_command
追伸担当者がいた場合、これはコメントになります。