我试图弄清楚我的代码的性能,但我不理解time
命令的输出。有人可以请解释一下time命令输出的含义吗?
下面是我得到的内容:
time ./filereader
real 0m0.193s
user 0m0.012s
sys 0m0.056s
什么是real
、user
和sys
?
我试图弄清楚我的代码的性能,但我不理解time
命令的输出。有人可以请解释一下time命令输出的含义吗?
下面是我得到的内容:
time ./filereader
real 0m0.193s
user 0m0.012s
sys 0m0.056s
什么是real
、user
和sys
?
来源:http://zch051383471952.blogspot.com/2010/01/different-of-real-user-sys-time.html
"Real"指实际经过的时间; "User" 和 "Sys" 指进程仅使用的 CPU 时间。
- "Real"是从开始到结束的墙上时钟时间。这包括了 其它进程使用的时间片以及进程因等待 I/O 完成而阻塞的时间。
- "User"指进程在用户模式(内核外)中所花费的 CPU 时间。这仅是进程执行中真正使用的 CPU 时间,其它进程和进程所花费的阻塞时间不计入此数。
- "Sys"指进程在内核中所花费的 CPU 时间。这意味着在内核中执行系统调用所花费的 CPU 时间,与仍在用户空间运行的库代码不同。像"user"一样,这只是进程使用的 CPU 时间。
'real'是所花费的时钟时间。如果你用秒表计时,得到的就是这个时间。
'user'是进程本身使用的CPU时间。
'sys'是内核代表该进程使用的CPU时间。