TIME
Section: Linux User's Manual (1)
Updated: 2019-03-06
Index
Return to Main Contents
名前
time - コマンドの時間計測やリソース使用量を表示する
書式
time [options] command [arguments...]
説明
time コマンドは、指定されたプログラム command を渡された引き数で実行する。 command が終了すると、
time はこのプログラムの実行時間の統計情報についてのメッセージを 標準エラー出力に出力する。 表示される統計情報は以下の三つから構成される:
(i) 起動から終了までに経過した実時間 (real time)、 (ii) ユーザー CPU 時間 (times(2) が返す
struct tms の tms_utime と tms_cutime の値の合計)、 (iii) システム CPU 時間
(times(2) が返す struct tms の tms_stime と tms_cstime の値の合計)。
(bash(1)
などの) いくつかのシェルには、組み込みの
time
コマンドが存在し、ここで説明するコマンドと同様の情報に加え、
他のリソースの情報も提供する場合もある。
組み込みではない実際のコマンドを使用するためには、 (/usr/bin/time のような) コマンドのパス名を指定する必要があるかもしれない。
オプション
- -p
-
POSIX ロケールの場合、伝統的なフォーマットである
-
"real %f\nuser %f\nsys %f\n"
-
が使用される (各数字は秒単位)。 %f の出力での小数点以下の桁数は規定されていないが、 クロックティック (clock tick)
の精度を表すのに十分な桁数となり、 少なくとも一桁は存在する。
終了ステータス
command が起動された場合は、 command の終了ステータスが終了ステータスとなる。
command
が見つからなかった場合は終了ステータスは 127 で、
command
が見つかったが起動できなかった場合は 126 となる。
これ以外で何かエラーがあった場合は、終了ステータスは 0 以外の前記以外の値
(1-125) の何かになる。
環境変数
環境変数
LANG,
LC_ALL,
LC_CTYPE,
LC_MESSAGES,
LC_NUMERIC,
NLSPATH
は出力文字や書式に使われる。
PATH
は
command
を探すのに使われる。
それ以外は出力文字や書式に使用される。
GNU バージョン
以下は GNU 1.7 バージョンの time の説明である。コマンド名とは裏腹に、GNU バージョンでは
有益な情報がたくさん出力される。使用時間だけでなく、 (取得できる場合には) メモリーや I/O、IPC 呼び出しなどの他のリソース
に関する情報も出力される。 出力はフォーマット文字列を使って整形され、 フォーマット文字列は -f オプションか環境変数 TIME で指定できる。
デフォルトのフォーマット文字列は以下の通り。
%Uuser %Ssystem %Eelapsed %PCPU (%Xtext+%Ddata %Mmax)k
%Iinputs+%Ooutputs (%Fmajor+%Rminor)pagefaults %Wswaps
-p
オプションが指定された場合には、
real %e
user %U
sys %S
という (他と互換性のある) 出力フォーマットが使用される。
フォーマット文字列
フォーマットはよくある printf 形式で解釈される。 通常の文字はそのままコピーされ、 タブ、改行 (newline)、バックスラッシュはそれぞれ
\t, \n, \\ で エスケープされる。 パーセント記号は %% で表現され、それ以外の % は変換を示す。 末尾には必ず改行文字
(newline) が追加される。 変換は以下の通りである。 tcsh(1) で使用される変換は全てサポートされている。
Time
- %E
-
経過した実時間 ([hours:]minutes:seconds の形式)。
- %e
-
(tcsh(1)
にはない) 経過した実時間 (秒単位)。
- %S
-
そのプロセスがカーネルモードで消費した CPU 時間の合計 (秒単位)。
- %U
-
そのプロセスがユーザーモードで消費した CPU 時間の合計 (秒単位)。
- %P
-
このジョブが獲得した CPU の割り合い (パーセンテージ)。 (%U + %S) / %E で計算される。
Memory
- %M
-
プロセス生存中のそのプロセスの resident set size の最大値。キロバイト単位。
- %t
-
(tcsh(1)
にはない) そのプロセスの resident set size の平均値。キロバイト単位。
- %K
-
そのプロセスのメモリー使用量の合計 (データ+スタック+テキスト) の平均値。キロバイト単位。
- %D
-
そのプロセスの非共有データ領域の平均サイズ。キロバイト単位。
- %p
-
(tcsh(1)
にはない) そのプロセスの非共有スタック空間の平均サイズ。キロバイト単位。
- %X
-
そのプロセスの共有テキスト空間の平均サイズ。キロバイト単位。
- %Z
-
(tcsh(1)
にはない) システムのページサイズ (バイト単位)。
この値はシステム毎に決まる定数だが、システムにより異なる。
- %F
-
プロセスの動作中に発生したメジャーページフォルトの回数。 これは、ディスクからページを読み込む必要があったページフォルトに 関するものである。
- %R
-
マイナーページフォールト、つまり回復可能なページフォルトの回数。 これは、そのページは有効でないが、まだ他の仮想ページに奪われて
いなかったページに対するページフォルトに関するものである。
- %W
-
そのプロセスが主記憶からスワップアウトされた回数。
- %c
-
そのプロセスが (タイムスライスの経過により) 強制的にコンテキストスイッチ された回数。
- %w
-
wait の回数、つまりそのプログラムが自発的にコンテキストスイッチされた回数。 例えば、I/O 操作の完了を待っている間などが該当する。
I/O
- %I
-
そのプロセスによるファイルシステムからの入力の回数。
- %O
-
そのプロセスによるファイルシステムへの出力の回数。
- %r
-
そのプロセスが受信したソケットメッセージ数。
- %s
-
そのプロセスが送信したソケットメッセージ数。
- %k
-
そのプロセスに配送されたシグナル数。
- %C
-
(tcsh(1)
にはない) time の対象となったコマンド名とコマンドライン引き数。
- %x
-
(tcsh(1)
にはない) コマンドの終了ステータス。
GNU オプション
- -f format, --format=format
-
出力フォーマットを指定する。 環境変数 TIME で指定されたフォーマットよりも優先される。
- -p, --portability
-
他の time と互換性のある出力フォーマットを使用する。
- -o file, --output=file
-
結果を stderr に送らず、指定されたファイルに書き込む。 ファイルは上書きされる。
- -a, --append
-
(-o と一緒に使用する。) ファイルを上書きせずに、結果をファイル末尾に追加する。
- -v, --verbose
-
非常に詳しい出力で、入手できる全ての情報を出力する。
- -q, --quiet
-
(command
がシグナルで終了させられた) 異常なプログラム終了や
0 以外の終了ステータスを報告しない。
GNU 標準オプション
- --help
-
使用方法に関するメッセージを標準出力に表示し、正常終了する。
- -V, --version
-
バージョン情報を標準出力に表示し、正常終了する。
- --
-
オプションリストの末尾を示す。
バグ
全てのリソースが UNIX の全てのバージョンで計測されているわけではないので、 いくつかの値が 0 と報告される可能性がある。
現在の出力項目のほとんどは 4.2BSD や 4.3BSD で取得可能なデータに 基づいて選択されている。
GNU time バージョン 1.7 はまだローカライズされていない。 そのため、POSIX の要件を実装していないことになる。
TIME という環境変数は名前の選択がまずい。 autoconf(1) や make(1)
のようなシステムでは、使用するコマンドを上書きするのにそのコマンドの 名前の環境変数を使うのが珍しくない。 MORE や TIME のような名前を
(プログラムのパス名の指定ではなく) プログラムへのオプションを指定するのに使うと、 面倒なことを引き起こす可能性が高い。
-o
が追記ではなく上書きになっているのは残念なことだ
(つまり
-a
オプションがデフォルトになっているべきだろうということだ)。
GNU time に対する提案やバグレポートは
bug-time@gnu.org
までメールを送ってほしい。 その場合には time や OS、使用している C コンパイラの バージョンを記載してほしい。 time
のバージョンは
time --version
で取得できる。
関連項目
bash(1),
tcsh(1),
times(2),
wait3(2)
この文書について
この man ページは Linux man-pages プロジェクトのリリース 5.07 の一部である。
プロジェクトの説明、バグ報告に関する情報、このページの最新版は、
http://www.kernel.org/doc/man-pages/ に書かれている。
Index
- 名前
-
- 書式
-
- 説明
-
- オプション
-
- 終了ステータス
-
- 環境変数
-
- GNU バージョン
-
- フォーマット文字列
-
- GNU オプション
-
- GNU 標準オプション
-
- バグ
-
- 関連項目
-
- この文書について
-
This document was created by
man2html,
using the manual pages.
Time: 18:28:44 GMT, December 28, 2020