我使用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
。
最后,你是怎么计算时间的? 没有这些信息,很难确切地说出问题(如果有的话)是什么。