牆上時鐘時間 ,用戶cpu時間 ,系統cpu時間

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,代表進程爲計算密集型(CPU bound),利用多核處理器的並行執行優點;
  • Real ≈ CPU,代表進程爲計算密集型(CPU bound),未並行執行;
  • Real > CPU,代表進程爲I/O密集型(I/O bound),多核並行執行優點並不明顯。

在單核處理器上,Real時間和CPU時間之差,即Real- (User + Sys)是全部延遲程序執行的因素的總和。可估算程序運行期間的CPU利用率爲CpuUsage = (User + Sys)/ Real * 100(%)。.net

在SMP(對稱多處理系統)上,該差值近似爲Real* ProcessorNum - (User + Sys)。這些因素包括:線程

  • 調入程序文本和數據的I/O操做;
  • 獲取程序實際使用內存的I/O操做;
  • 由其它程序消耗的CPU用時;
  • 由操做系統消耗的CPU用時。

 

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

相關文章
相關標籤/搜索