Time

在命令行中使用“時間”時,什麼是“系統時間”

  • May 25, 2014

我使用在 Ubuntu 14.04 的標準終端上time計時Perl腳本。

讀過real time是秒錶時間;作為使用者,我花在查看從啟動程序到終止程序執行的程序上的時間。但我不明白時間是user什麼sys。至少可以說,手冊頁time含糊不清。

雖然有點清楚real時間是分開的usersys但不清楚它們代表什麼。

在我的腳本中,我正在進行基準測試

$$ 1 $$C++ 和 Perl 相互對比以查看差異,我想知道我實際得到了什麼數據。一個範例輸出是:

real    0m24.198s
user    0m23.120s
sys     0m1.030s

有人可以詳細說明預設的時間格式告訴使用者什麼嗎?我是Linux新手,所以請不要假設太多。

$$ 1 $$有趣的是,雖然在我的基準測試中 C++ 在real時間方面比 Perl 快得多,但sys時間並沒有太大差異,因為 C++ 實際上sys比 Perl 使用更多的時間。這就是為什麼我想知道它們的意思

來自維基百科

  • 使用者時間與系統時間

術語“使用者 CPU 時間”起初可能有點誤導。需要明確的是,總 CPU 時間是 CPU 為程序執行某些操作所花費的時間和 CPU 代表程序為核心執行系統呼叫所花費的時間的組合。當程序循環遍歷數組時,它正在累積使用者 CPU 時間。相反,當程序執行諸如 exec 或 fork 之類的系統呼叫時,它正在累積系統 CPU 時間。

  • 實時與 CPU 時間

在這種情況下,術語“實時”是指經過的“掛鐘”時間,例如使用秒錶。總 CPU 時間(使用者時間 + 系統時間)可能大於或小於該值。因為程序可能會花費一些時間等待並且根本不執行(無論是在使用者模式還是系統模式下),所以實際時間可能大於總 CPU 時間。因為程序可能會派生出 CPU 時間(使用者和 sys)被添加到 time 命令報告的值的子程序,所以總 CPU 時間可能大於實際時間。

引用自:https://unix.stackexchange.com/questions/131851