注意,time 只负责后面跟着的一个命令
譬如
time date && sleep 1s
它只统计 date 的信息,把命令写入脚本,然后 time sh script.sh 来统计
以下为格式化输出,可以自己修改
/usr/bin/time -f "cmd:%C\nstatus:%x\nreal:%Es\nuser:%Us\nsys:%Ss\nPct:%P\nMixmem:%Mkb\nMeanmem:%tkb" date
Thu Aug 30 18:12:28 CST 2019
cmd:date
status:0
real:0:00.03s
user:0.00s
sys:0.00s
Pct:9%
Mixmem:760kb
Meanmem:0kb
补充两句:
一个进程使用的cpu时间=user+sys.
real =user+ sys + (进程等待读写文件,通信堵塞;等待信号,还有就是进程为D 状态,资源不足,假死等待资源的时候)
real time 可以从sleep 命令看出来,多了那么一点点时间;
user,sys 用户态和系统态 是没有执行的,因为sleep 只是单纯的等待时间
/usr/bin/time -f "cmd:%C\nstatus:%x\nreal:%Es\nuser:%Us\nsys:%Ss\nPct:%P\nMixmem:%Mkb\nMeanmem:%tkb" sleep 2s
cmd:sleep 2s
status:0
real:0:02.03s
user:0.00s
sys:0.00s
Pct:0%
Mixmem:672kb
Meanmem:0kb
Pct :P 执行指令时 CPU 的占用比例。其实这个数字就是核心模式加上使用者模式的 CPU 时间除以总时间。
网友评论