我尝试了>>time ./a.out
得到
real 0m0.035s
user 0m0.008s
sys 0m0.004s
它的真正含义是什么?
当我重复时我得到了
real 0m0.012s
user 0m0.000s
sys 0m0.012s
如果我多次尝试 每次我得到不同的输出为什么?我该怎么解决呢。
答案 0 :(得分:4)
每个都是程序的不同运行时。
Real是运行时间的实际挂钟时间
sys是系统在执行程序时花费的时间(即内核花费的时间)
user是在执行它的用户模式中花费的时间(即花在你不在内核中的时间)。
答案 1 :(得分:3)
没有“解决方案”,因为没有问题。您正在运行多任务系统,它取决于负载获得响应的速度。您可以做的是运行几次并将平均值作为“指南”。
答案 2 :(得分:2)
time -f "%e" -o Output.log ./a.out
将执行文件a.out的总执行时间值存储到Output.log文件
答案 3 :(得分:1)
您的时间永远不会相同,因为每次执行程序时,机器上的条件都不同,操作系统进程/线程调度程序,ram分配和再次释放,以及系统可能执行的其他任务正在做,就像从磁盘读取重文件一样,交换。
Kurtis Nusbaum已经指出了真实,用户和系统的含义,我只是澄清真实:是执行程序的总时间,所以如果你的磁盘经常运行繁重,总时间会更长你的程序读取数据。所以它不是衡量效率,而是衡量经过的时间。用户+系统时间将是一个更好的效率计。