Scroll to navigation

time(1) General Commands Manual time(1)

名前

time - コマンドの時間計測やリソース使用量を表示する

書式

time [option ...] command [argument ...]

説明

time コマンドは、指定されたプログラム command を渡された引数で実行します。 command が終了すると、 time はこのプログラム実行時における、時間に関する統計情報を標準エラー出力に出力します。表示される統計情報は以下の三つから構成されます: (i) 起動から終了までに経過した実時間 (real time)、(ii) ユーザー CPU 時間 (times(2) が返す struct tmstms_utimetms_cutime 値の合計)、 (iii) システム CPU 時間 (times(2) が返す struct tmstms_stimetms_cstime 値の合計)。

(bash(1) などの) いくつかのシェルには、時間とその他のリソースの使用状況に関する同様の情報を提供する、組み込みの time コマンドが存在します。組み込みではない実際のコマンドを使用するためには、 (/usr/bin/time のような) コマンドのパス名を指定する必要があるかもしれません。

オプション

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 はテキストと出力のフォーマッティングのために使用されます。 PATHcommand を探すのに使われます。

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(3) のような形式で解釈されます。通常の文字はそのままコピーされ、 タブ、改行 (newline)、バックスラッシュはそれぞれ \t, \n, と \\[rs] で エスケープされます。 パーセント記号は %% で表現され、それ以外の % は変換を示します。time プログラムは、末尾に必ず改行文字 (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 オプション

出力フォーマットを指定します。 環境変数 TIME で指定されたフォーマットよりも優先されます。
他の time と互換性のある出力フォーマットを使用します。
結果を stderr に送らず、指定されたファイルに書き込みます。ファイルは上書きされます。
(-o と一緒に使用する。) ファイルを上書きせずに、結果をファイル末尾に追加します。
非常に詳しい出力で、入手できる全ての情報を出力します。
プログラムの異常終了 (command がシグナルによって終了した場合) やゼロ以外の終了ステータスを報告しません。

GNU 標準オプション

使用方法に関するメッセージを標準出力に表示し、正常終了します。
バージョン情報を標準出力に表示し、正常終了します。
--
オプションリストの末尾を示します。

バグ

全てのリソースが 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)

2026-02-08 Linux man-pages (未リリース)