ナビゲーションリンクをスキップ | |
印刷ビューの終了 | |
![]() |
マニュアルページセクション 1: ユーザーコマンド Oracle Solaris 11 Information Library (日本語) |
- 単純コマンドの時間測定
time [-p] utility [argument]...
time ユーティリティーは utility オペランドで指定されたユーティリティーを argument とともに呼び出し、utility の時間統計情報をまとめて標準エラー出力に書き出します。この情報には以下のものが含まれます。
utility を呼び出してからその実行が終了するまでの経過 (実) 時間
ユーザー CPU 時間。これは utility を実行したプロセスに対して times(2) 関数が返す tms_utime と tms_cutime の値の合計と同等の意味です。
システム CPU 時間。これは utility を実行したプロセスに対して times() 関数が返す tms_stime と tms_cstime の値の合計と同等の意味です。
time をパイプラインの一部として使用した場合、 それがパイプライン内のグループ分けコマンド中の 唯一のコマンドである場合を除き、 報告される時間情報の内容は不確定です。以下の例を見てください。左側のコマンドの結果は不確定ですが、 右側のコマンドは、上の例ではユーティリティ a について、下の例ではユーティリティ c について報告されます。
time a | b | c { time a } | b | c a | b | time c a | b | (time c)
次のオプションがサポートされています。
時間情報を以下の形式で標準エラー出力に書き出します。
real %f\nuser %f\nsys %f\n < real seconds>, <user seconds>, <system seconds>
次のオペランドがサポートされています。
呼び出すユーティリティの名前
utility を呼び出す際に引数として与えるべき文字列
time ユーティリティーは、エラーが発生すると終了ステータス 127 を返します。これによりアプリケーションは、「ユーティリティーが見つからなかった」エラーと「呼び出したユーティリティーがエラーで終了した」ステータスとを見分けることができます。127 という値を選んだのは、通常この値はほかの意味で使われることがないためです。ほとんどのユーティリティーは、小さい値を使って「一般的なエラー状態」を表し、128 より大きな値は、シグナル受信による終了の場合と区別が困難になりかねないためです。同じような観点から、ユーティリティは見つかったが実行できなかった、という場合に使う値として 126 が選ばれています。
例 1 time コマンドの使用
time は、パイプラインまたは一連のコマンドに対して使用すると 便利なことがよくあります。まずパイプラインやコマンド群を 1 つのファイルに入れ、それをユーティリティとして呼び出します。それにより time をファイル中のすべてに適用させることができます。
他の方法として、以下のような使い方でも time を複雑なコマンドに適用できます。
example% time sh -c 'complex-command-line'
例 2 C シェルに組み込まれている time の使用
次の 2 つの例では、csh に組み込まれている time と /usr/bin/time との違いを示しています。現在使用中のシェルが csh であるとします。
example% time find / -name csh.1 -print /usr/share/man/man1/csh.1 95.0u 692.0s 1:17:52 16% 0+0k 0+0io 0pf+0w
time の出力形式に関する詳細は、csh(1) を参照してください。
example% /usr/bin/time find / -name csh.1 -print /usr/share/man/man1/csh.1 real 1:23:31.5 user 1:33.2 sys 11:28.2
time の実行に影響を与える次の環境変数についての詳細は、environ(5) を参照してください。 LANG、LC_ALL、LC_CTYPE、LC_MESSAGES、LC_NUMERIC、NLSPATH、および PATH。
utility で指定したユーティリティーが呼び出された場合、そのユーティリティーの終了ステータスが time の終了ステータスとなります。呼び出されなかった場合には、 time は以下のいずれかの値を返して終了します。
time ユーティリティの中でエラーが発生しました。
utility は見つかったが呼び出すことができなかった。
utility は見つからなかった。
属性についての詳細は、attributes(5) を参照してください。
|
csh(1), shell_builtins(1), timex(1), times(2), attributes(5), environ(5), standards(5)
time コマンドをマルチプロセッサマシン上で実行した場合、出力された user と sys の値の合計が real 値を超える場合があります。これは、マルチプロセッサ・マシンでは、 処理を複数のプロセッサに分けて実行することが可能なためです。
時間測定対象のコマンド処理中に割り込みが発生すると、 出力される時間の値に誤差が生じることがあります。
経過時間の精度は秒単位までですが、CPU 時間は 100 分の 1 秒まで計測されます。そのため CPU 時間の合計値は経過時間を最大 1 秒上回る可能性があります。