私はコマンドライン経由で呼び出すプロセスの実行時間を測定しようとしています(つまり、プロセスが終了するまでにどれくらい時間がかかるかを知りたいです)。これを達成するプロセスを呼び出すコマンドに追加できるコマンドはありますか?
測定するコマンドの前にtime
を追加します。例:time ls
。
出力は次のようになります。
real 0m0.606s
user 0m0.000s
sys 0m0.002s
real
、user
、およびsys
の説明(man time
から):
real
:プロセスが使用した経過実時間(ウォールクロック)(秒単位)。user
:プロセスが(ユーザーモードで)直接使用したCPU秒の合計数(秒単位)。sys
:プロセス(カーネルモード)のためにシステムが使用するCPU秒の合計数(秒単位)。行ごとのデルタ測定については、 gnomon を試してください。
タイムスタンプ情報を別のコマンドの標準出力の先頭に追加するのは、moreutilsのtsに少し似たコマンドラインユーティリティです。長時間かかっているプロセスの履歴記録が必要な長時間実行プロセスに役立ちます。
Gnomonに何かをパイプすると、各行にタイムスタンプが追加され、その行がバッファーの最後の行だった時間、つまり、次の行が表示されるのにかかった時間が示されます。デフォルトでは、gnomonは各行間の経過秒数を表示しますが、これは構成可能です。
time
を使用できます:
time ls -R
date +"%T" && cp -r ./file /destination/folder/here && date +"%T"
ターミナルでこのコマンドを実行すると、ファイルをコピーするための合計時間がわかります
時々、アプリの起動などのアクションにかかる時間をカウントするためにストップウォッチが必要になることがあります。この場合、ここでのソリューションの多くは役に立ちません。
これには sw を使用します。
wget -q -O - http://git.io/sinister | sh -s -- -u https://raw.githubusercontent.com/coryfklein/sw/master/sw
sw
- start a stopwatch from 0, save start time in ~/.sw
sw [-r|--resume]
- start a stopwatch from the last saved start time (or current time if no last saved start time exists)
- "-r" stands for --resume
time -v command
-v
は詳細情報を提供します