歡迎來到Linux教程網
Linux教程網
Linux教程網
Linux教程網
Linux教程網 >> Linux基礎 >> Linux技術 >> 牆上時鐘時間 ,用戶cpu時間 ,系統cpu時間

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

日期:2017/3/3 13:58:07   编辑:Linux技術
一、 牆上時鐘時間 ,用戶cpu時間 ,系統cpu時間定義與聯系
時鐘時間(牆上時鐘時間wall clock time):從進程從開始運行到結束,時鐘走過的時間,這其中包含了進程在阻塞和等待狀態的時間。
用戶CPU時間:就是用戶的進程獲得了CPU資源以後,在用戶態執行的時間。
系統CPU時間:用戶進程獲得了CPU資源以後,在內核態的執行時間。
進程的三種狀態為阻塞、就緒、運行。
時鐘時間 = 阻塞時間 + 就緒時間 +運行時間
用戶CPU時間 = 運行狀態下用戶空間的時間
系統CPU時間 = 運行狀態下系統空間的時間。
用戶CPU時間+系統CPU時間=運行時間。
注意:
其中,用戶CPU時間和系統CPU時間之和為CPU時間,即命令占用CPU執行的時間總和。實際時間要大於CPU時間,因為Linux是多任務操作系統,往往在執行一條命令時,系統還要處理其它任務。
另一個需要注意的問題是即使每次執行相同命令,但所花費的時間也是不一樣,其花費時間是與系統運行相關的。
在多核處理器機器上,若進程含有多個線程或通過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(%)。
在SMP(對稱多處理系統)上,該差值近似為Real* ProcessorNum - (User + Sys)。這些因素包括:
調入程序文本和數據的I/O操作;
獲取程序實際使用內存的I/O操作;
由其它程序消耗的CPU用時;
由操作系統消耗的CPU用時。
二、實例
ll@ubuntu:~/temp$ time ./test
sdga
s d g a
//上面是測試test程序的
real 0m4.019s //時鐘時間
user 0m0.004s //用戶CPU時間
sys 0m0.000s //系統CPU時間
三、參考文獻
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
Copyright © Linux教程網 All Rights Reserved