【 time 】コマンド(bash)――コマンドの実行時間を計測する:Linux基本コマンドTips(251)
本連載は、Linuxのコマンドについて、基本書式からオプション、具体的な実行例までを紹介していきます。今回は、指定したコマンドの実行時間を計測する「time」コマンドです。
本連載は、Linuxのコマンドについて、基本書式からオプション、具体的な実行例までを紹介していきます。今回は、指定したコマンドの実行時間を計測する「time」コマンドです。
timeコマンドとは?
「time」は実行時間を計測して表示するコマンドです。「time コマンド名」で指定したコマンドの実行にかかった時間を表示します。
今回取り上げたtimeコマンドはbashの内部コマンドです。同名の外部コマンド(/usr/bin/time)が存在しますが、コマンドラインで「time」を実行すると、内部コマンドの方を実行します(連載第252回)。
timeコマンドの書式
time [オプション] コマンド名
※[ ]は省略可能な引数を示しています。
timeの主なオプション
短いオプション | 意味 |
---|---|
-p | 時間をPOSIX形式で表示する |
コマンドの実行時間を計測する
「time コマンド名」でコマンドの実行にかかった時間を表示します。
計測したいコマンドにオプションや引数がある場合、引用符などを付ける必要はありません。例えば「ls」を実行する時間の計測であれば「time ls」と指定し、「ls -l /」であれば「time ls -l /」のように指定します。
timeコマンドを実行すると、3種類の時間「real」「user」「sys」を順に表示します。
- real 指定したコマンドを実行するためにかかった時間
- user 指定したコマンドを実行するため使用したユーザーCPU時間
- sys 指定したコマンドを実行するために使ったシステムCPU時間
画面1では3種類のコマンドの実行時間を計測しています。上から順にxzコマンド(ファイルを圧縮するコマンド、第249回)、findコマンド(ファイルを探すコマンド、第31回)、sleepコマンド(指定した秒数だけ待機するコマンド、第66回)です。
コマンドによって、実行時間に特徴が表れました。xzコマンドはトータルでかかっている時間(real)に占めるユーザーCPU時間の比率が高く、圧縮処理のためにユーザーCPU時間を消費していると推測できます。
findコマンドではファイルシステムにアクセスするためにシステムCPU時間を消費しており、sleepコマンドは、待機している間はCPUを使っていないと推測できるでしょう。
コマンド実行例
time コマンド名
(コマンドの実行にかかった時間を表示する)
出力フォーマットを変更する
「time -p コマンド名」とすると、計測した時間を特定の形式(POSIX形式)で出力します。具体的にはreal、user、sysの秒数をそれぞれ数字だけで表示します。
これ以外の形式で表示したい場合は、シェル変数「TIMEFORMAT」を使用します。
書式 | 意味 |
---|---|
%R | 経過時間(realの秒数、※1) |
%U | ユーザーCPU時間(userの秒数) |
%S | システムCPU時間(sysの秒数) |
%P | CPU使用率、計算式は(%U + %S) / %R |
%% | %という文字 |
※1 %R、%U、%Sは「%2R」のように、小数点以下の桁数(最大3桁)を指定可能。「%2lR」のように「l」を指定するとロングフォーマットで表示する。桁数を省略した場合や3以上を指定した場合は3桁として扱う。
筆者紹介
西村 めぐみ(にしむら めぐみ)
PC-9801NからのDOSユーザー。PC-486DX時代にDOS版UNIX-like toolsを経てLinuxへ。1992年より生産管理のパッケージソフトウェアの開発およびサポート業務を担当。著書に『図解でわかるLinux』『らぶらぶLinuxシリーズ』『Accessではじめるデータベース超入門[改訂2版]』『macOSコマンド入門』など。2011年より、地方自治体の在宅就業支援事業にてPC基礎およびMicrosoft Office関連の教材作成およびeラーニング指導を担当。
Copyright © ITmedia, Inc. All Rights Reserved.