-
time
(LINUX系統命令)
鎖定
- 外文名
- time
- 類 型
- linux 命令
- 意 思
- 測量或測定
time簡述
一個程序在運行時使用的系統資源通常包括CPU、Memory和I/O等,其中CPU資源的統計包括實際使用時間(real time)、用户態使用時間(the process spent in user mode)、內核態使用時間(the process spent in kernel mode)。但是簡單的使用time命令並不能得到內存和I/O的統計數據。
time常用參數
time命令最常用的使用方式就是在其後面直接跟上命令和參數:
time [options]command [arguments...]
在命令執行完成之後就會打印出CPU的使用情況:
real 0m5.064s <== 實際使用時間(real time)
user 0m0.020s <== 用户態使用時間(the process spent in user mode)
sys 0m0.040s <== 內核態使用時間(the process spent in kernel mode)
time命令跟上-p參數可以只打印時間數值(秒數),不打印單位。
time使用示例
time示例一
統計運行時間
# time find . -name "mysql.sh" ................ real 0m14.837s user 0m0.030s sys 0m0.120s
注:real遠大於user加上sys,因為find需要遍歷各個目錄,需要大量的I/O操作,而磁盤I/O通常是最慢的環節,因此大部分時間find進程都在等待磁盤I/O完成。
# time find . -name "mysql.sh" ............... real 0m0.230s user 0m0.040s sys 0m0.030s
注:再次運行的時候,發現real time變得很小了,應該是操作系統將剛才操作過的一些文件緩存了的緣故,因而大大減少了磁盤I/O。
# time -p find . -name "mysql.sh" .............. real 0.15 user 0.04 sys 0.03
注:使用-p參數時,直接打印所需時間的數值,單位為秒,而不是更友好的格式,包括分鐘、秒鐘的顯示方式。
time示例二
Linux系統中time命令其實不止一個
有個-f參數可以來指定統計信息的輸出格式。
# time -f "real %f\nuser %f\nsys %f\n" find . -name "mysql.sh" -bash: -f: command not found real 0m0.024s user 0m0.000s sys 0m0.000s
怪哉,不靈啊。使用type -a來看一下。使用這個shell內建命令經常會有意想不到的發現。
# type -a time time is a shell keyword time is /usr/bin/time
注:通過這條命令我們可以發現我們常用的time其實是一個Shell關鍵字,還有一個外部命令/usr/bin/time,它有何不同呢?
# /usr/bin/time Usage: /usr/bin/time [-apvV] [-f format] [-o file] [--append] [--verbose] [--portability] [--format=format] [--output=file] [--version] [--help] command [arg...]
注:外部命令/usr/bin/time功能更強大,下面來嘗試一下。
# /usr/bin/time find . -name "mysql.sh" .................. 0.03user 0.04system 0:00.12elapsed 55%CPU (0avgtext+0avgdata 0maxresident)k 0inputs+0outputs (154major+63minor)pagefaults 0swaps
- 參考資料
-
- 1. linux time 命令詳解 .chinaunix.2013-7-14[引用日期2015-08-20]
- 詞條統計
-
- 瀏覽次數:次
- 編輯次數:12次歷史版本
- 最近更新: thereforenay