如何在ubuntu中计算C程序的运行时间

时间:2011-11-28 17:39:50

标签: c gcc

我尝试了>>time ./a.out

得到

real 0m0.035s

user 0m0.008s

sys  0m0.004s

它的真正含义是什么?

当我重复时我得到了

real 0m0.012s

user 0m0.000s

sys  0m0.012s

如果我多次尝试 每次我得到不同的输出为什么?我该怎么解决呢。

4 个答案:

答案 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已经指出了真实,用户和系统的含义,我只是澄清真实:是执行程序的总时间,所以如果你的磁盘经常运行繁重,总时间会更长你的程序读取数据。所以它不是衡量效率,而是衡量经过的时间。用户+系统时间将是一个更好的效率计。