統計給定命令所花費的總時間
time命令 用于統計給定命令所花費的總時間。
time(參數)
指令:指定需要運行的額指令及其參數。
當測試一個程序或比較不同算法時,執行時間是非常重要的,一個好的算法應該是用時最短的。所有類UNIX系統都包含time命令,使用這個命令可以統計時間消耗。例如:
[root@localhost ~]# time ls
anaconda-ks.cfg install.log install.log.syslog satools text
real 0m0.009s
user 0m0.002s
sys 0m0.007s
輸出的信息分別顯示了該命令所花費的real時間、user時間和sys時間。
shell內建也有一個time命令,當運行time時候是調用的系統內建命令,應為系統內建的功能有限,所以需要時間其他功能需要使用time命令可執行二進制文件/usr/bin/time
。
使用-o
選項將執行時間寫入到文件中:
/usr/bin/time -o outfile.txt ls
使用-a
選項追加信息:
/usr/bin/time -a -o outfile.txt ls
使用-f
選項格式化時間輸出:
/usr/bin/time -f "time: %U" ls
-f
選項后的參數:
參數 | 描述
--- | ---
%E
| real時間,顯示格式為[小時:]分鐘:秒
%U
| user時間。
%S
| sys時間。
%C
| 進行計時的命令名稱和命令行參數。
%D
| 進程非共享數據區域,以KB為單位。
%x
| 命令退出狀態。
%k
| 進程接收到的信號數量。
%w
| 進程被交換出主存的次數。
%Z
| 系統的頁面大小,這是一個系統常量,不用系統中常量值也不同。
%P
| 進程所獲取的CPU時間百分百,這個值等于 user+system
時間除以總共的運行時間。
%K
| 進程的平均總內存使用量(data+stack+text),單位是 KB
。
%w
| 進程主動進行上下文切換的次數,例如等待I/O操作完成。
%c
| 進程被迫進行上下文切換的次數(由于時間片到期)。