Chinaunix首页 | 论坛 | 博客
  • 博客访问: 1736485
  • 博文数量: 438
  • 博客积分: 9799
  • 博客等级: 中将
  • 技术积分: 6092
  • 用 户 组: 普通用户
  • 注册时间: 2012-03-25 17:25
文章分类

全部博文(438)

文章存档

2019年(1)

2013年(8)

2012年(429)

分类: 系统运维

2012-03-27 17:32:47

很早之前开始,UNIX系统维护了两个不同的时间值:


日历时间(Calender time):这个值记录了从Epoch(1970/1/1-00:00:00,UTC)开始到现在的秒数。这个时间可以用来记录文件修改的时间等等。早期系统的数据类型time_t维护这个时间值。


进程时间(Process time):也叫CPU时间,用来测量一个进程使用的中央处理器资源。进程时间用时钟周期(clock ticks)来测量,历史上一秒钟的时钟周期为50、60或者100。早期系统的数据类型clock_t维护了这个时间值。


当我们测量一个进程的执行时间时,我们可以发现UNIX系统维护了三个值:时钟时间(Clock time)、用户时钟时间(User CPU time)和系统时钟时间(System CPU time)。


时钟时间,有时也称为挂钟时间(wall clock time)。是进程用来运行的时间量,这个值取决于其它正在运行的进程的数量。当在报告时钟时间的时候,我们都是指在没有其它活动进程的时候测量的结果。


用户CPU时间是用户指令(user instructions)所花去的CPU时间,而系统CPU时间是内核执行所花支的CPU时间。比如,当一个进程执行系统服务比如read或write 时,该系统服务在内核里花费的时间也属于进程时间的一部分。用户CPU时间和系统CPU时间的总和经常被统称为CPU时间。


命令time可以简单地测量任何一个进程的时钟时间、用户时间和系统时间。它以一个命令作为参数:time -p grep _POSIX_SOURCE */*.h > /dev/null。可以看到输出:
real 0m0.81s
user 0m0.11s
sys 0m0.07s


输出取决于当前使用的shell。有的shell不运行/usr/bin/time,而是用别的内建函数一测量命令运行的时间。


阅读(983) | 评论(0) | 转发(0) |
给主人留下些什么吧!~~