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調用代替。

參見

參考