time (Unix)

time是一個Unix作業系統上的命令。它可以用於確定執行特定命令持續的時間。

用法

要使用該命令,只需在任何命令前加上time,如:

time ls

當命令完成時,time 將計算並報告執行ls命令所花費的用戶CPU時間、系統CPU時間和真即時間。不同版本的命令輸出格式不一,有的會給予額外的統計數據,如下面的例子:

 $ time host wikipedia.org
 wikipedia.org has address 207.142.131.235
 0.000u 0.000s 0:00.17 0.0%      0+0k 0+0io 0pf+0w
 $

time(1) 可以作為一個獨立的程式存在(如GNU time)或作為shell內建命令(例如在tcshzsh中)。

用戶時間與系統時間

第一次看到時,術語「用戶CPU時間」可以會有點誤導。需要明確的是,總CPU時間是指CPU花費在程式執行操作的時間,及CPU花費在內核為該程式執行系統呼叫的時間組合。當程式在陣列中迴圈時,將累加到用戶CPU時間。相反,當一個程式執行如execfork系統呼叫時,將累加到系統CPU時間。

真即時間與CPU時間

在這裏,術語「真即時間」指的是「掛鐘」經過的時間,就像用秒表計時一樣。總CPU時間(用戶時間+系統時間)可能會大於或小於該值。因為一個程式可能會花時間來等待,並且不執行操作(無論是在用戶還是系統模式中),實際時間可能大於總CPU時間。因為程式可能會fork子程式,而他們的CPU時間(用戶和系統)會被加到time報告的值,總CPU時間可能大於實際的時間。

操作方法

根據time的GNU實現原始碼,大多數顯示的資訊是從wait3系統呼叫衍生的。在沒有wait3呼叫返回狀態資訊的系統中,將使用times呼叫代替。

參見

參考