查看命令执行时间——time命令

字数 525阅读 1248

time命令可以统计一个程序的执行时间,可以用于评估一个程序的性能。

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

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

  • real时间是指挂钟时间,也就是命令开始执行到结束的时间。这个短时间包括其他进程所占用的时间片,和进程被阻塞时所花费的时间。
  • user时间是指进程在用户模式中的CPU执行时间,其他进程花费的时间和阻塞状态的时间没有计算在内。
  • sys时间是进程在内核模式中的CPU执行时间,代表进程使用系统调用所花费的CPU执行时间,这也是由进程执行而消耗的CPU执行时间。

执行模式?

操作系统在执行一个进程时,会不断的在两种模式之间切换,它们是用户模式内核模式
用户模式很好解释,就是这个进程的程序本身被运行时的运行模式。比如在程序中给反转一个字符串之类的操作,这个操作因为完全不依赖于其他系统调用,所以是在用户模式下被执行。那么当程序中有一段代码需要读取一个文件的时候,操作系统就需要切换到系统模式下执行文件读写系统调用了。

若想深入理解什么是系统调用可以阅读[Linux系统调用详解(实现机制分析)--linux内核剖析(六)](
http://blog.csdn.net/gatieme/article/details/

总结

上面ls命令的用户模式下执行时间是0.02秒,内核模式下(ls命令需要调用访问文件系统的系统调用)的执行时间是0.007秒。合计ls命令的执行时间就是0.027秒。

所以,一个程序的CPU执行时间等于user时间加上sys时间。

推荐阅读更多精彩内容