Linux命令 time - 統(tǒng)計(jì)給定命令所花費(fèi)的總時(shí)間

2022-03-22 09:24 更新

time

統(tǒng)計(jì)給定命令所花費(fèi)的總時(shí)間

補(bǔ)充說(shuō)明

time命令 用于統(tǒng)計(jì)給定命令所花費(fèi)的總時(shí)間。

語(yǔ)法

time(參數(shù))

參數(shù)

指令:指定需要運(yùn)行的額指令及其參數(shù)。

實(shí)例

當(dāng)測(cè)試一個(gè)程序或比較不同算法時(shí),執(zhí)行時(shí)間是非常重要的,一個(gè)好的算法應(yīng)該是用時(shí)最短的。所有類UNIX系統(tǒng)都包含time命令,使用這個(gè)命令可以統(tǒng)計(jì)時(shí)間消耗。例如:

[root@localhost ~]# time ls
anaconda-ks.cfg  install.log  install.log.syslog  satools  text

real    0m0.009s
user    0m0.002s
sys     0m0.007s

輸出的信息分別顯示了該命令所花費(fèi)的real時(shí)間、user時(shí)間和sys時(shí)間。

  • real時(shí)間是指掛鐘時(shí)間,也就是命令開(kāi)始執(zhí)行到結(jié)束的時(shí)間。這個(gè)短時(shí)間包括其他進(jìn)程所占用的時(shí)間片,和進(jìn)程被阻塞時(shí)所花費(fèi)的時(shí)間。
  • user時(shí)間是指進(jìn)程花費(fèi)在用戶模式中的CPU時(shí)間,這是唯一真正用于執(zhí)行進(jìn)程所花費(fèi)的時(shí)間,其他進(jìn)程和花費(fèi)阻塞狀態(tài)中的時(shí)間沒(méi)有計(jì)算在內(nèi)。
  • sys時(shí)間是指花費(fèi)在內(nèi)核模式中的CPU時(shí)間,代表在內(nèi)核中執(zhí)系統(tǒng)調(diào)用所花費(fèi)的時(shí)間,這也是真正由進(jìn)程使用的CPU時(shí)間。

shell內(nèi)建也有一個(gè)time命令,當(dāng)運(yùn)行time時(shí)候是調(diào)用的系統(tǒng)內(nèi)建命令,應(yīng)為系統(tǒng)內(nèi)建的功能有限,所以需要時(shí)間其他功能需要使用time命令可執(zhí)行二進(jìn)制文件/usr/bin/time。

使用-o選項(xiàng)將執(zhí)行時(shí)間寫(xiě)入到文件中:

/usr/bin/time -o outfile.txt ls

使用-a選項(xiàng)追加信息:

/usr/bin/time -a -o outfile.txt ls

使用-f選項(xiàng)格式化時(shí)間輸出:

/usr/bin/time -f "time: %U" ls

-f選項(xiàng)后的參數(shù):

參數(shù)描述
%Ereal時(shí)間,顯示格式為[小時(shí):]分鐘:秒
%Uuser時(shí)間。
%Ssys時(shí)間。
%C進(jìn)行計(jì)時(shí)的命令名稱和命令行參數(shù)。
%D進(jìn)程非共享數(shù)據(jù)區(qū)域,以KB為單位。
%x命令退出狀態(tài)。
%k進(jìn)程接收到的信號(hào)數(shù)量。
%w進(jìn)程被交換出主存的次數(shù)。
%Z系統(tǒng)的頁(yè)面大小,這是一個(gè)系統(tǒng)常量,不用系統(tǒng)中常量值也不同。
%P進(jìn)程所獲取的CPU時(shí)間百分百,這個(gè)值等于 user+system 時(shí)間除以總共的運(yùn)行時(shí)間。
%K進(jìn)程的平均總內(nèi)存使用量(data+stack+text),單位是 KB。
%w進(jìn)程主動(dòng)進(jìn)行上下文切換的次數(shù),例如等待I/O操作完成。
%c進(jìn)程被迫進(jìn)行上下文切換的次數(shù)(由于時(shí)間片到期)。


以上內(nèi)容是否對(duì)您有幫助:
在線筆記
App下載
App下載

掃描二維碼

下載編程獅App

公眾號(hào)
微信公眾號(hào)

編程獅公眾號(hào)