1、 牆上時鐘時間 ,用戶cpu時間 ,系統cpu時間定義與聯繫html
時鐘時間(牆上時鐘時間wall clock time):從進程從開始運行到結束,時鐘走過的時間,這其中包含了進程在阻塞和等待狀態的時間。ubuntu
用戶CPU時間:就是用戶的進程得到了CPU資源之後,在用戶態執行的時間。
系統CPU時間:用戶進程得到了CPU資源之後,在內核態的執行時間。
進程的三種狀態爲阻塞、就緒、運行。
時鐘時間 = 阻塞時間 + 就緒時間 +運行時間
用戶CPU時間 = 運行狀態下用戶空間的時間
系統CPU時間 = 運行狀態下系統空間的時間。
測試
用戶CPU時間+系統CPU時間=運行時間。ui
注意:
其中,用戶CPU時間和系統CPU時間之和爲CPU時間,即命令佔用CPU執行的時間總和。實際時間要大於CPU時間,由於Linux是多任務操做系統,每每在執行一條命令時,系統還要處理其它任務。
另外一個須要注意的問題是即便每次執行相同命令,但所花費的時間也是不同,其花費時間是與系統運行相關的。spa
在多核處理器機器上,若進程含有多個線程或經過fork調用建立子進程,則實際時間(牆上時鐘時間)可能小於CPU總時間——由於不一樣線程或進程可並行執行,但其時間會計入主進程的CPU總時間。若程序在某段時間處於等待狀態而並未執行,則實際時間可能大於CPU總時間。其數值關係總結以下:操作系統
在單核處理器上,Real時間和CPU時間之差,即Real- (User + Sys)是全部延遲程序執行的因素的總和。可估算程序運行期間的CPU利用率爲CpuUsage = (User + Sys)/ Real * 100(%)。.net
在SMP(對稱多處理系統)上,該差值近似爲Real* ProcessorNum - (User + Sys)。這些因素包括:線程
2、實例unix
linshuqiang@ubuntu:~/temp$ time ./test sdga s d g a //上面是測試test程序的 real 0m4.019s //時鐘時間 user 0m0.004s //用戶CPU時間 sys 0m0.000s //系統CPU時間
3、參考文獻code
http://os.51cto.com/art/201407/445853.htm (說得很詳細,值得看一下)
http://blog.chinaunix.net/uid-27629574-id-3880991.html
http://blog.csdn.net/fjt19900921/article/details/8301230