next up previous contents
Next: 4 gnuplot でグラフを描こう Up: 実験に役立つテクニック集    V1.2 Previous: 2 シェル・スクリプトで簡易コマンドを作ろう

3 time で時間を計ろう

-- 効率的な計算は実行時間を測ることから --

UNIX には time というコマンドがある。これはコマンドの実行に 要した計算時間、経過時間 (実時間と言うことも) を表示するものである。

prog という名前のコマンドに one, 2 という引数を与 えて実行したい場合、つまり普通なら

oyabun% prog one 2

のように実行したいとき、実行時間を計測するためには、

oyabun% time prog one 2

とする。

time コマンドにも色々な種類がある。例えば sh に組み込ま れた time では
        6.04 real         0.17 user         0.03 sys

また tcsh に組み込まれた time では
0.173u 0.030s 0:06.04 2.8% 6+3179k 0+0io 0pf+0w

のようなフォーマットで出てくる (``0.173u'' は user time 0.173 秒, ``0.030s'' は system time 0.030 秒, ``0:06.04'' は real time 0分6.04秒ということを表す)。

3つの時間の意味は、

real 実時間 コマンドを起動してから、終了するまでの、経過時間
user ユーザー時間 要するに計算時間
system システム時間 要するに入出力時間
というものである。

なお、time コマンドは、結果を標準エラー出力に出力するので、 cshtcsh を使ってリダイレクトするには、

oyabun% prog one 2 >& prog.out

のように >& を使う必要がある。sh の場合は

$ prog one 2 > prog.out 2>&1

とするか、あるいは

$ prog one 2 > prog.out 2> prog.time.out

のようにする。


next up previous contents
Next: 4 gnuplot でグラフを描こう Up: 実験に役立つテクニック集    V1.2 Previous: 2 シェル・スクリプトで簡易コマンドを作ろう
桂田 祐史
2014-05-27