概要
timeコマンドは、特定のプログラムやスクリプトの実行時間を測定し、ユーザーCPU時間、システムCPU時間、実経過時間などの詳細なリソース使用量統計を提供します。これにより、アプリケーションのパフォーマンスボトルネックを特定するのに役立ちます。
主な測定指標
- 実時間 (Real time): コマンドが開始されてから終了するまでの実際の経過時間
- ユーザーCPU時間 (User CPU time): ユーザーモードでCPUがコマンドを実行するのに使用された時間
- システムCPU時間 (System CPU time): カーネルモードでCPUがコマンドを実行するのに使用された時間
主なオプション
timeコマンドは、さまざまなオプションを通じて出力形式を制御したり、追加情報を要求したりできます。
出力形式と制御
生成されたコマンド:
コマンドを組み合わせてみてください。
説明:
`time` コマンドを実行します。
これらのオプションを組み合わせて、AIと一緒に仮想的にコマンドを実行してみてください。
使用例
基本使用法
time ls
lsコマンドの実行時間を測定します。
POSIX形式で出力
time -p sleep 1
sleepコマンドの実行時間をPOSIX互換形式で出力します。
測定結果をファイルに保存
time -o time_output.txt -a ls -l
ls -lコマンドの測定結果をtime_output.txtファイルに保存します。timeの出力は標準エラーに出力されるため、2>を使用します。
カスタム形式で出力
time -f "Real: %e User: %U System: %S" sleep 1.5
実時間、ユーザーCPU時間、システムCPU時間を特定の形式で出力します。
ヒントと注意点
timeコマンド使用時の注意点と追加のヒントです。
シェル内蔵timeと外部timeコマンド
bashやzshなどのシェルには独自のtime組み込みコマンドがあります。これは通常、real、user、sysの3つの値のみを出力し、外部timeコマンド(/usr/bin/time)よりも機能が制限されています。より詳細な情報を求める場合は、外部timeコマンドを明示的に呼び出す必要があります。
外部timeコマンドの明示的な使用
\time sleep 1
/usr/bin/time sleep 1
シェル内蔵timeではなく外部timeコマンドを使用するには、バックスラッシュ(\time)を付けるか、フルパスを指定します。
測定精度
- 非常に短いコマンド(ミリ秒単位)は測定誤差が大きくなる可能性があります。
- システムの現在の負荷状態によって測定結果が異なる場合があるため、正確な測定のためには複数回繰り返し、平均値を調べることをお勧めします。
出力リダイレクション
timeコマンドの出力は標準エラー(stderr)に出力されます。したがって、timeの測定結果をファイルにリダイレクトするには、2>または2>>を使用する必要があります。例えば、`time ls 2> time_result.txt`は、lsの出力は画面に表示し、timeの結果のみをファイルに保存します。