我想弄清楚我的代碼的性能,但我不明白time
命令的輸出,有誰可以請解釋什麼時間命令輸出意味着什麼。如何理解時間命令的輸出?
以下是我所得到的:
time ./filereader
real 0m0.193s
user 0m0.012s
sys 0m0.056s
什麼是real
,user
,sys
?
我想弄清楚我的代碼的性能,但我不明白time
命令的輸出,有誰可以請解釋什麼時間命令輸出意味着什麼。如何理解時間命令的輸出?
以下是我所得到的:
time ./filereader
real 0m0.193s
user 0m0.012s
sys 0m0.056s
什麼是real
,user
,sys
?
來源:http://zch051383471952.blogspot.com/2010/01/different-of-real-user-sys-time.html
房地產是指實際經過的時間; 用戶和系統僅指過程中使用的CPU時間 。
- 真實是牆上時鐘從通話開始到結束的時間。這是包含時間片 在內的所有已用時間的 ,其他進程使用的時間片和時間片 進程花費被阻塞(例如,如果 它正在等待I/O完成)。
- 用戶數是在進程內用戶模式代碼( 內核之外)中花費的CPU時間。這是 只有在執行 過程中使用的實際CPU時間。其他進程和時間 過程花費的阻止不計數 計入此數字。
- Sys是在進程內核中花費的CPU時間。這個 意味着在內核中執行系統調用的CPU時間,因爲 與庫代碼相反,即 仍然在用戶空間中運行。與 'user'一樣,這只是CPU使用時間的 的過程。
'real'是花費的時間量。如果你想用秒錶計時,那就是你會得到的。
'user'是進程本身使用的CPU時間量。
'sys'是內核花費在進程上的CPU時間。
'real' is而不是秒錶所告訴的時間量,至少從我的觀察結果來看。例如,昨天晚上我開始了一個過程,今天早上它報告了「真正的2376m6.172s」。事實上,不到十二個小時已經過去了。 – feklee 2015-07-22 09:46:53
如果您使用C/C++進行開發,則應使用gprof來剖析代碼,請檢查http://www.cs.duke.edu/~ola/courses/programming/gprof.html。
查看全文複製問題:http://stackoverflow.com/questions/556405/what-do-real-user-and-sys-mean-in-the-output-of-time1 – 2012-09-21 19:53:50