real 指的是执行程序用掉的所有时间.从输入命令回车后开始执行,到命令结束退出。此间由于进程切换,IO阻塞都计算在内
比如time sleep 2, 结果可能是这样子:
real 0m2.002s
user 0m0.000s
sys 0m0.000s
user 指的是进程在用户模式用的cpu时间。这是一个进程真正占用的cpu时间。切换到其它进程和阻塞的时间不包括在内。
比如执行time vim foo, 打开文件等了十几秒,随便敲几个字保存退出后,
real 0m16.422s
user 0m0.084s
sys 0m0.008s
可见大部分时间都用在等待上了,vim占用的cpu时间并不多
sys 指的是进程用在内核模式的cpu时间。因为进程有时候需要特权指令时,比如访问磁盘,外设,需要执行系统调用,sys就是系统调用的执行时间。库调用在用户空间不属于sys.(man一下man手册,即man man,第二部分是系统调用,第三部分是库调用,系统调用更接近底层,与操作系统密切相关;库调用可移植性更好)
一个进程使用的cpu时间=user+sys.
参考:《linux shell 脚本攻略》