为什么我的C程序花费的时间比自己计算的时间多?

我使用Linux上的时间命令来衡量我的程序花了多长时间,并在我的代码中,我已经把计时器计算时间

time took calculated by program: 71.320 sec real 1m27.268s user 1m7.607s sys 0m3.785s 

我不知道为什么我的程序花了不less时间计算,如何find原因并加以解决呢?

================================================== ====

这里是我如何计算我的代码的时间;

 clock_t cl; cl = clock(); do_some_work(); cl = clock() - cl; float seconds = 1.0 * cl / CLOCKS_PER_SEC; printf("time took: %.3f sec\n", seconds); 

启动进程总是有开销,启动运行时,关闭程序和时间本身可能也有开销。

最重要的是,在一个多进程的操作系统中,你的进程可以被“切换出来”,这意味着其他进程在你的进程中运行。 这也可能与时间混淆。

让我解释一下时间的输出:

  • real意味着实际的时钟时间,包括所有开销。
  • user是在实际的程序中花费的时间。
  • sys是内核系统花费的时间(例如我之前谈到的转换)

请注意, user + sys非常接近您的时间: 1m7.607s + 0m3.785s == 71.392s

最后,你是怎么计算时间的? 没有这些信息,很难确切地说出问题(如果有的话)是什么。