2010-08-07 59 views
27

我想弄清楚我的代碼的性能,但我不明白time命令的輸出,有誰可以請解釋什麼時間命令輸出意味着什麼。如何理解時間命令的輸出?

以下是我所得到的:

time ./filereader 

real 0m0.193s 
user 0m0.012s 
sys 0m0.056s 

什麼是realusersys

+0

查看全文複製問題:http://stackoverflow.com/questions/556405/what-do-real-user-and-sys-mean-in-the-output-of-time1 – 2012-09-21 19:53:50

回答

32

來源:http://zch051383471952.blogspot.com/2010/01/different-of-real-user-sys-time.html

房地產是指實際經過的時間; 用戶和系統僅指過程中使用的CPU時間 。

  • 真實是牆上時鐘從通話開始到結束的時間。這是包含時間片 在內的所有已用時間的 ,其他進程使用的時間片和時間片 進程花費被阻塞(例如,如果 它正在等待I/O完成)。
  • 用戶數是在進程內用戶模式代碼( 內核之外)中花費的CPU時間。這是 只有在執行 過程中使用的實際CPU時間。其他進程和時間 過程花費的阻止不計數 計入此數字。
  • Sys是在進程內核中花費的CPU時間。這個 意味着在內核中執行系統調用的CPU時間,因爲 與庫代碼相反,即 仍然在用戶空間中運行。與 'user'一樣,這只是CPU使用時間的 的過程。
10

'real'是花費的時間量。如果你想用秒錶計時,那就是你會得到的。

'user'是進程本身使用的CPU時間量。

'sys'是內核花費在進程上的CPU時間。

+2

'real' is而不是秒錶所告訴的時間量,至少從我的觀察結果來看。例如,昨天晚上我開始了一個過程,今天早上它報告了「真正的2376m6.172s」。事實上,不到十二個小時已經過去了。 – feklee 2015-07-22 09:46:53