q@ubuntu:~/Jetson$ time sync
real 0m0.008s
user 0m0.000s
sys 0m0.004s
- real:从进程
sync
开始执行到完成所耗费的 CPU 总时间,包括该sync
进程执行时实际使用的CPU时间,该进程耗费在阻塞上的时间(比如等待 I/O 操作)和其它进程所耗费的时间(Linux 是多进程系统,ls 在执行过程中,可能会有别的进程抢占 CPU)。 - user:进程
sync
执行用户态代码所耗费的 CPU 时间,该时间仅指sync
进程时实际使用的 CPU 时间,不包括其它进程所使用的时间和本进程阻塞的时间。 - sys:进程
sync
在内核态运行所耗费的 CPU 时间,即执行内核系统调用所耗费的 CPU 时间。
real = user + sys?
real 包含了其他进程占用 CPU 的情况,而 user 和 sys 仅指某一进程,故 real > user + sys 是非常有可能的。
real > user + sys?
一般来说,在单核系统上,这个关系式是成立的。但是在多核 CPU 上,有些程序能够同时利用到多核 CPU 的计算能力,本来,完成同样的工作实际需要 user + sys 时间,但是,现在多个 CPU 同时帮忙,实际运行时间 real 大大少于单个 CPU 运行的时间(user+sys),故 real < user + sys。
real < user + sys?
real < user + sys 在多核情况下一般成立,但是在单核下,一般有 real > user + sys。
总之,real 和 user + sys 的大小关系与单核还是多核系统有关。