2011年4月22日 星期五

time--測試程式效率

time命令在測試程式效率的時候很有用,也很方便。
它以秒為單位將一條命令執行期間所用的時間、系統時間和 time 命令的執行時間列印在標準錯誤中。
例如:
說明
執行命令列”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命令運行的同時,還有其它任務在運行
示例
   1. 要測量運行一個程式所需的時間,請輸入:
      /usr/bin/time -p a.out
      此命令運行程式 a.out,並以由 -p 標誌指定的格式將實際時間、使用者時間和系統時間寫入標準錯誤;例如:
      實際時間 10.5
      用戶時間 0.3
      系統時間 3.6
   2. 要在檔中保存 time 命令資訊的記錄,請輸入:
      /usr/bin/time a.out 2> a.time


 原文地址 http://www.wunengwu.cn/time-under-the-command-linux.html

沒有留言: