【发布时间】:2011-05-30 18:02:05
【问题描述】:
#include <time.h>
time_t start,end;
time (&start);
//code here
time (&end);
double dif = difftime (end,start);
printf ("Elasped time is %.2lf seconds.", dif );
我的开始时间和结束时间都是 0.000。我不明白错误的来源。
使用 time(start) 和 time(end) 还是 start=clock() 和 end=clock() 来计算经过的时间更好。
【问题讨论】:
-
你能发布你正在计时的代码吗?只要您不需要高精度计时,您的计时似乎是正确的。
-
这对我来说很好。您是否使用调试器验证了 start 和 end 的值? (注意:为了测试它,我在时间(开始)和时间(结束)之间放置了一个“睡眠(1)”。)
-
如果您需要更高分辨率的时间测量,您是否尝试过
clock()? -
@sverre:
clock()不衡量时间的绝对流逝。它衡量专门花费在这一过程上的时间量。重要区别。如果你正在分析,你可能想要这个;否则你可能不会。