【命令】time — 執行命令並計時
【格式】time [-p] command [arguments...]
【說明】
執行命令列"command [arguments...]",命令列執行結束時在標準輸出中列印執行該命令列的時間統計結果,其統計結果包含以下資料:
1)實際時間(real time): 從command命令列開始執行到執行終止的消逝時間;
2)使用者cpu時間(user cpu time): 命令執行完成花費的使用者cpu時間,即命令在使用者態中執行時間總和;
3)系統cpu時間(system cpu time): 命令執行完成花費的系統cpu時間,即命令在核心態中執行時間總和。
其中,使用者cpu時間和系統cpu時間之和為cpu時間,即命令占用cpu執行的時間總和。實際時間要大於cpu時間,因為linux是多工作業系統,往往在執行一條命令時,系統還要處理其它任務。
另乙個需要注意的問題是即使每次執行相同命令,但所花費的時間也是不一樣,其花費時間是與系統執行相關的。
例1:
1. # time date
2. sun mar 26 22:45:34 gmt-8 2006
3. 4. real 0m0.136s
5. user 0m0.010s
6. sys 0m0.070s
7. #
在例1中,執行命令"time date"(見第1行)。系統先執行命令"date",第2行為命令"date"的執行結果。第3-6行為執行命令"date"的時間統計結果,其中第4行"real"為實際時間,第5行"user"為使用者cpu時間,第6行"sys"為系統cpu時間。以上三種時間的顯示格式均為mmmnn[.fff]s。
在例1中,cpu時間 = 使用者cpu時間 + 系統cpu時間 = 0m0.010s + 0m0.070s = 0m0.080s,實際時間大於cpu時間,說明在date命令執行的同時,還有其它任務在執行。
【引數說明】
-p 以posix預設的時間格式列印時間統計結果,單位為秒。詳細的輸出格式見例2。
例2:
1. # time -p date
2. wed mar 27 00:33:11 gmt-8 2006
3. real 0.11
4. user 0.00
5. sys 0.02
6. #
在例2中,同樣執行命令"time date"(見第1行)。系統先執行命令 "date",第2行為該命令的執行結果。第3-5行為執行命令"date"的時間統計結果。注意本例的時間格式與例1中的時間格式差別,使用-p 引數後的時間顯示格式為nn.ff,其單位為秒。
【相關環境變數說明】
timeformat 自定義輸出的時間格式。
我們也可以通過環境變數timeformat來自定義輸出的時間格式[1]。格式中使用和標準c中的函式printf一致的轉義符,以及使用以下的轉義序列來指定輸出的時間格式:
%[prec][l][rus]
其中,選項prec為指定時間精度,即小數點後面的位數;選項l表示使用分秒(具體格式為:mmmnn[.fff]s)的格式;最後乙個字元表示時間的型別,其中r表示實際時間,u表示使用者cpu時間,s表示系統cpu 時間,它們的單位均為秒。
time命令預設輸出的時間格式同 timeformat=$'/nreal/t%3lr/nuser/t%3lu/nsys/t%3ls'。
使用-p引數的time命令輸出的時間格式同 timeformat=$'real %2r/nuser %2u/nsys %2s'。
例3:
1. # export timeformat=$'real %2r/nuser %2u/nsys %2s'
2. # time date
3. wed mar 27 00:52:03 gmt-8 2006
4. real 0.04
5. user 0.00
6. sys 0.01
7. #
比較例2和例3顯示結果,很容易發現例3雖然沒有使用引數-p,但其輸出的結果和例2一模一樣。
當然,我們也可以修改為任何自己喜歡的時間格式。
例4:
1. # export timeformat=$'/nhello, thinkerabc!/nreal time : %lr/nuser cup time : %lu/nsystem cpu time : %ls'
2. # time date
3. wed mar 27 01:09:26 gmt-8 2006
4.5. hello, thinkerabc!
6. real time : 0m0.016s
7. user cup time : 0m0.006s
8. system cpu time : 0m0.008s
9. #
例4的第4-8行正是我們自定義的輸出格式。
從以上介紹了三種指定時間格式的方法,即預設的時間格式、使用引數-p的posix預設的時間格式和設定環境變數timeformat自定義的時間格式,linux系統使用的先後順序如下:
1.引數-p的posix預設時間格式;
2.環境變數timeformat自定義的時間格式;
3.預設的時間格式。
【退出狀態說明】
如果能執行command命令,則返回該命令的退出狀態,否則返回如下的退出狀態值:
127 命令未找到
126 命令找到,但不能執行
1-125 其它錯誤
[1] bash-2.05b源程式, http://ftp.gnu.org/gnu/bash/bash-2.05b.tar.gz , 2002.07
[2] linux man pages
每天回顧linux命令(time)
time命令 time命令用於統計給定命令或者程式執行所花的總時間。語法 time 引數 引數 需要進行統計的程式。沒有引數的時候統計自己。結果解釋 1 real時間是指從程式開始執行到結束的時間。這段時間包括其他程序占用的時間片 程序阻塞所耗費的時間。2 user時間是指程序在使用者模式中的cpu...
Linux 教程 被忽視的time命令
如果要選 linux 下最容易被忽視的命令,time 應該算乙個。簡單來說,它是乙個用來計算命令執行時間的工具,之所以說它容易被忽視,一方面很多人根本不知道 time 的存在,而是習慣在命令啟動前後記錄兩個時間戳,然後手動計算命令執行時間 另一方面很多人雖然知道 time 的存在,但是卻並沒有真正理...
Linux使用time命令獲取命令執行時間
linux下time命令可以獲取到乙個程式的執行時間,包括程式的實際執行時間 real time 以及程式執行在使用者態的時間 user time 和核心態的時間 sys time 它的使用方法和前面講過的strace類似,在待執行的命令前加上time即可。來看乙個例子程式test.c includ...