长期以来,U N I X系统一直使用两种不同的时间值:
(1) 日历时间。该值是自1 9 7 0年1月1日0 0 : 0 0 : 0 0以来国际标准时间(U T C)所经过的秒数累
计值(早期的手册称U T C为格林尼治标准时间)。这些时间值可用于记录文件最近一次的修改
时间等。
(2) 进程时间。这也被称为C P U时间,用以度量进程使用的中央处理机资源。进程时间以
时钟滴答计算,多年来,每秒钟取为5 0、6 0或1 0 0个滴答。系统基本数据类型c l o c k _ t保存这种
时间值。另外,P O S I X定义常数C L K _ T C K,用其说明每秒滴答数。(常数C L K _ T C K现在已不
再使用。2 . 5 . 4节将说明如何用s y s c o n f函数得到每秒时钟滴答数。)
当度量一个进程的执行时间时(见3 . 9节),系统使用三个进程时间值:
时钟时间。
用户C P U时间。
系统C P U时间。
时钟时间又称为墙上时钟时间(wall clock time)。它是进程运行的时间总量,其值与系统
中同时运行的进程数有关。在我们报告时钟时间时,都是在系统中没有其他活动时进行度量的。
用户C P U时间是执行用户指令所用的时间量。系统C P U时间是为该进程执行内核所经历
的时间。例如,只要一个进程执行一个系统服务,例如r e a d或w r i t e,则在内核内执行该服务
所花费的时间就计入该进程的系统C P U时间。用户C P U时间和系统C P U时间的和常被称为
C P U时间。
要取得任一进程的时钟时间、用户时间和系统时间很容易——只要执行命令t i m e ( 1 ),其参
数是要度量其执行时间的命令,例如:
$ cd /usr/include
$ time grep _POSIX_SOURCE */*.h > /dev/null
real 0m19.81s
user 0m0.43s
sys 0m4.53s
t i m e命令的输出格式与所使用的s h e l l有关。
阅读(2074) | 评论(0) | 转发(0) |