time命令可以查看一个进程的执行时间(某些Shell不能使用time命令,而是使用自己内建的计时程序)。如果我们想查看一个命令花费的时间就可以使用time。
使用方式很简单time的参数就是我们需要查看花费时间的命令,如下:
$ time cc test.c
real 0m8.106s
user 0m0.972s
sys 0m0.767s
这里解释一下输出的结果:
real
:时钟时间(Clock time),有时被称为墙时钟时(wall clock time),是进程运行花费的时间总和,这个时间取决于运行的运行的进程数量。也就是命令实际运行时间。这个时间的测量和其他系统上的活动无关。user
:用户CPU时间(user CPU time)。这个时间统计的是用户操作相关的CPU时间,也就是进程花费的时间。sys
:系统CPU时间(system CPU time)。这个时间统计的是系统服务相关的CPU时间。需要注意的是,如果一个进程调用了系统服务,那么系统服务花费的时间会算在进程花费的时间上。
========= 2023/10/19 更新 =========
上面的解释可能有人不太能理解,这里补充一下:
第一个real
就是实际上这个进程运行了多久,相当于你拿个计时器计时了。
第二个user
和sys
是 CPU 时钟时间,这就意味着只记录了 CPU 运行的时间。而且如果你的设备包含了多个处理器核心,而你的程序又是多进程的,那么 CPU 时间经常会远远大于实际运行时间,因为是多个 CPU 的运行时间总和。
希望能帮到有需要的人~