我在linux上使用time命令来测量我的程序花了多长时间,在我的代码中我已经把计时器用来计算时间
time took calculated by program: 71.320 sec
real 1m27.268s
user 1m7.607s
sys 0m3.785s
Run Code Online (Sandbox Code Playgroud)
我不知道为什么我的程序实时超过计算,如何找到原因并解决它?
================================================== ====
这是我在代码中计算时间的方法;
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);
Run Code Online (Sandbox Code Playgroud)
orl*_*rlp 14
启动进程总是有开销,启动运行时,关闭程序和时间本身可能也有开销.
最重要的是,在一个多进程操作系统中,您的进程可以"切换",这意味着其他进程在您处于暂停状态时运行.这也可能弄乱时间.
让我解释一下时间的输出:
real 表示实际的时钟时间,包括所有开销.user 花在实际程序上的时间.sys 是内核系统花费的时间(例如我之前谈过的切换)请注意,这user + sys非常接近你的时间:1m7.607s + 0m3.785s == 71.392s.
最后,你是如何计算时间的?没有这些信息,很难确切地说出问题(如果有的话).