測特定指令執行時所需消耗的時間及系統資源

名稱: time
  
  使用權限: 所有使用者
  
  使用方式: time [options] COMMAND
[arguments]
  
  說明: time 指令的用途,在於量測特定指令執行時所需消耗的時間及系統資源等資訊。例如 CPU
時間、記憶體、輸入輸出等等。需要特別注意的是,部分資訊在 Linux 上顯示不出來。這是因爲在 Linux 上部分資源的分配函式與 time
指令所預設的方式並不相同,以致於 time 指令無法取得這些資料。
  
  參數:
  
  -o or
–output=FILE
  設定結果輸出檔。這個選項會將 time 的輸出寫入 所指定的檔案中。如果檔案已經存在,系統將覆寫其內容。
  -a or –append
  配合 -o 使用,會將結果寫到檔案的末端,而不會覆蓋掉原來的內容。
  -f FORMAT or
–format=FORMAT
  以 FORMAT 字串設定顯示方式。當這個選項沒有被設定的時候,會用系統預設的格式。不過你可以用環境變數 time
來設定這個格式,如此一來就不必每次登入系統都要設定一次。
  一般設定上,你可以用
   ’ ’
  表示跳欄,或者是用
  

  ’
  表示換行。每一項資料要用 % 做爲前導。如果要在字串中使用百分比符號,就用 。(學過 C 語言的人大概會覺得很熟悉)
  time 指令可以顯示的資源有四大項,分別是:
  
  Time resources
  Memory resources
  IO resources
  Command info
  
  詳細的內容如下:
  
  Time
Resources
  E 執行指令所花費的時間,格式是:[hour]:minute:second。請注意這個數字並不代表實際的 CPU 時間。
  e 執行指令所花費的時間,單位是秒。請注意這個數字並不代表實際的 CPU 時間。
  S 指令執行時在覈心模式(kernel
mode)所花費的時間,單位是秒。
  U 指令執行時在使用者模式(user mode)所花費的時間,單位是秒。
  P 執行指令時 CPU
的佔用比例。其實這個數字就是核心模式加上使用者模式的 CPU 時間除以總時間。
  
  Memory Resources
  M
執行時所佔用的實體記憶體的最大值。單位是 KB
  t 執行時所佔用的實體記憶體的平均值,單位是 KB
  K
執行程序所佔用的記憶體總量(stack+data+text)的平均大小,單位是 KB
  D 執行程序的自有資料區(unshared data
area)的平均大小,單位是 KB
  p 執行程序的自有堆疊(unshared stack)的平均大小,單位是 KB
  X
執行程序間共享內容(shared text)的平均值,單位是 KB
  Z 系統記憶體頁的大小,單位是 byte。對同一個系統來說這是個常數
  
  IO Resources
  F
此程序的主要記憶體頁錯誤發生次數。所謂的主要記憶體頁錯誤是指某一記憶體頁已經置換到置換檔(swap
file)中,而且已經分配給其他程序。此時該頁的內容必須從置換檔裏再讀出來。
  R
此程序的次要記憶體頁錯誤發生次數。所謂的次要記憶體頁錯誤是指某一記憶體頁雖然已經置換到置換檔中,但尚未分配給其他程序。此時該頁的內容並未被破壞,不必從置換檔裏讀出來
  W 此程序被交換到置換檔的次數
  c 此程序被強迫中斷(像是分配到的 CPU 時間耗盡)的次數
  w
此程序自願中斷(像是在等待某一個 I/O 執行完畢,像是磁碟讀取等等)的次數
  I 此程序所輸入的檔案數
  O 此程序所輸出的檔案數
  r 此程序所收到的 Socket Message
  s 此程序所送出的 Socket Message
  k 此程序所收到的信號
( Signal )數量
  
  Command Info
  C 執行時的參數以及指令名稱
  x 指令的結束代碼 (
Exit Status )
  
  -p or –portability
  這個選項會自動把顯示格式設定成爲:
  real
%e
  user %U
  sys %S
  這麼做的目的是爲了與 POSIX 規格相容。
  -v or –verbose
  這個選項會把所有程序中用到的資源通通列出來,不但如一般英文語句,還有說明。對不想花時間去熟習格式設定或是剛剛開始接觸這個指令的人相當有用。
  
  範例:
  利用下面的指令
   time -v ps -aux
  
  我們可以獲得執行 ps
-aux 的結果和所花費的系統資源。如下面所列的資料:

   USER PID %CPU %MEM VSZ RSS TTY STAT START 
TIME COMMAND 
  root 1 0.0 0.4 1096 472 ? S Apr19 0:04 init 
  root 2 0.0 
0.0 0 0 ? SW Apr19 0:00 [kflushd] 
  root 3 0.0 0.0 0 0 ? SW Apr19 0:00 
[kpiod] 
  ...... 
  root 24269 0.0 1.0 2692 996 pts/3 R 12:16 0:00 ps 
-aux 
  
   Command being timed: "ps -aux" 
   User time (seconds): 
0.05 
   System time (seconds): 0.06 
   Percent of CPU this job got: 68% 
   Elapsed (wall clock) time (h:mm:ss or m:ss): 0:00.16 
   Average 
shared text size (kbytes): 0 
   Average unshared data size (kbytes): 0 
   Average stack size (kbytes): 0 
   Average total size (kbytes): 0 
   Maximum resident set size (kbytes): 0 
   Average resident set size 
(kbytes): 0 
   Major (requiring I/O) page faults: 238 
   Minor 
(reclaiming a frame) page faults: 46 
   Voluntary context switches: 0 
   
Involuntary context switches: 0 
   Swaps: 0 
   File system inputs: 0 
   File system outputs: 0 
   Socket messages sent: 0 
   Socket 
messages received: 0 
   Signals delivered: 0 
   Page size (bytes): 4096 
   Exit status: 0
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章