用time函数计算程序运行时间时,出现了三个时间,不是太明白,很多人的博客也讲的不是太清,这里再重新整理一下:
一、实例:
time cp ~/Downloads/archlinux-2012.03.10_04-00-01-core-i686.iso .
real 0m4.749s user 0m0.008s sys 0m0.656s
二、由于unix是一个多任务分时操作系统,所以时间类型比较多,大体列一些概念:
1.响应时间:最直观的定义是计算机完成某一任务所花费的全部时间,包括访问磁盘、访问存储器、输入/输出、其他任务、操作系统开销等。(从程序运行到程序结束所用的真实时间??real)2.CPU时间:CPU工作的时间,不包含I/O等待时间及运行其它程序的时间。(用户看到的响应时间是程序完成任务所花费的全部时间,而不是CPU时间。)
3.用户CPU时间:用户程序所花费的CPU时间。(执行每行代码的时间??user)
4.系统CPU时间:用户程序运行期间操作系统花费的CPU时间。(系统调用,read,write,在内核内执行该服务所花费的时间??sys)
三、关系
1. 用户CPU时间 + 系统CPU时间 = CPU时间
2.实际时间(real) > CPU时间