timeでコマンド実行時間を計る
timeでコマンド実行時間を計る
ImageMagickのコマンドで大量ファイルのサイズ変換を実施すると、結構時間がかかる。
どれくらい時間がかかるのか計ってみよう、とtimeコマンドをつけて実行してみた。
timeは引数となるコマンドの実行にかかった所有時間を計測し、実行終了後に出力してくれる。
引数となるコマンドラインにはパイプやリダイレクトは使用できない。
timeにはbash組み込みのものと/usr/bin/配下の2種類が存在する。
基本的機能に違いはなく、出力の表示が違うくらいのようだ。
同じサイズのディレクトリを2つ用意し、2種類の実行方法を比べてみた。
元のディレクトリのサイズはどちらも22.3MB(なお、リサイズ後は3.2MBになった)。
ちなみに実行環境はMac。
最初はbash組込みのコマンド。
$ time mogrify -resize 35% *.JPG
real 3m39.318s
user 3m3.210s
sys 0m13.051s
次に/usr/binにバイナリとして用意されたコマンド。フルパスで実行。
$ /usr/bin/time mogrify -resize 35% *.JPG
220.52 real 183.24 user 13.19 sys
単位の表示に差はあるようだけど、かかった時間はほぼ同じと見てよいでしょう。
全体の実時間は4分弱、ユーザモードのCPU消費時間は3分程、システムモードの
CPU消費時間が13秒くらい。
以下、出力される測定時間の簡単な説明。
(初めてtimeコマンドを使った時は見方が分からず戸惑いましたからねー)
real:実行全体にかかった所要時間。コマンド呼び出しから終了までの実時間。
user:ユーザーCPU時間。実行中において、ユーザモードでCPUを消費した計算時間。
sys:システムCPU時間。実行中において、システムモードでCPUを消費した入出力時間。
調べればいくらでも詳細な説明がgetできるけど、自分としてはこれくらい分かればいいかと…。
timeの実行結果はMacとLinuxで若干差があるので、それも記録しておこうと思いマス!
(続く)