GNUバージョンのtime
前回の関連記事、timeでコマンド実行時間を計るからの続き。
timeコマンドの出力結果は、Macだとbash組込み、/usr/bin/time、どちらもあっさりしている。
時間の単位が違うくらいで、殆ど違いがない。
$ time cp test.pl test.pl.20090404
real 0m0.081s
user 0m0.002s
sys 0m0.011s
$ /usr/bin/time cp test.pl test.pl.20090404-2
0.06 real 0.00 user 0.00 sys
ちなみに、tcsh組込みだと以下のようになり、ちょっと詳しく表示する。
% time cp test.pl test.pl.20090404-3
0.001u 0.006s 0:00.02 0.0% 0+0k 0+6io 0pf+0w
左からユーザモード、システムモード、実時間。0+6ioというのは、ファイルシステムからの読み込み0回、
書き込みが6回ということのよう。あとは不明。
LinuxではtimeにGNUバージョンというのがあり、出力結果がbash組込みのものより詳しく
表示してされ、かつ独自のオプションが設定できるよう。
/usr/bin/timeとフルパスで実行する方がGNUバージョン。
bash組込みコマンド
$ time cp info.php info.php.20090404
real 0m0.303s
user 0m0.002s
sys 0m0.012s
GNUバージョン
$ /usr/bin/time cp info.php info.php.20090404-2
0.00user 0.00system 0:00.00elapsed 100%CPU (0avgtext+0avgdata 0maxresident)k
0inputs+48outputs (0major+204minor)pagefaults 0swaps
上記の見方については、manで確認すれば分かるかと。
(きりがないので詳細は省かせて頂きます)
オプションなしで実行しても上記のようにちょっと詳しく出力してくれるのだが、
-vオプションをつけるとさらに詳しい情報を出力する。
$ /usr/bin/time -v cp info.php info.php.20090404-3
Command being timed: “cp info.php info.php.20090404-3″
User time (seconds): 0.00
System time (seconds): 0.01
Percent of CPU this job got: 4%
Elapsed (wall clock) time (h:mm:ss or m:ss): 0:00.26
Average shared text size (kbytes): 0
Average unshared data size (kbytes): 0
Average stack size (kbytes): 0
Average total size (kbytes): 0
Maximum resident set size (kbytes): 0
Average resident set size (kbytes): 0
Major (requiring I/O) page faults: 3
Minor (reclaiming a frame) page faults: 203
Voluntary context switches: 21
Involuntary context switches: 1
Swaps: 0
File system inputs: 336
File system outputs: 40
Socket messages sent: 0
Socket messages received: 0
Signals delivered: 0
Page size (bytes): 4096
Exit status: 0
しかし、こんなに詳細を表示してもらったとしても、個人的には普段使うことはなさそうである・・・
(そもそもtimeコマンド自体、普段使っていないのだった)
引数なしで -V オプションをつけると、バージョンを出力して終了する。
$ /usr/bin/time -V
GNU time 1.7
他にも少しオプションがあるようだけど、説明読んでもよく判らないし、こちらもやはり
自分が使うことはなさそうである・・・
ちなみに引数なしでtimeを実行すると以下のように。
$ time
real 0m0.000s
user 0m0.000s
sys 0m0.000s
/usr/bin/timeを引数もオプションもなしで実行すると、引数かオプションをつけろ、と怒られます。
$ /usr/bin/time
Usage: /usr/bin/time [-apvV] [-f format] [-o file] [--append] [--verbose]
[--portability] [--format=format] [--output=file] [--version]
[--help] command [arg...]
こんな何気ないコマンドでも、追求し始めると止まらなくなって時間が矢のように過ぎてゆく。
あぁ、他にもっと重要なタスクがあるのにxxxxx
自分自身にもtimeコマンドを組込んで、がっつりタイムマネジメントしたいものだ、とふと思いました。
Linux関連記事一覧はこちらをどうぞ
↓ ↓ ↓
Linux-index