每次调试的处理时间更改

时间:2014-07-03 21:05:37

标签: time process clock

对于算法的计时(毫秒),我有以下代码:

clock_t start = clock();
algorithm();
clock_t end = clock();
cout << float(end-start)/CLOCKS_PER_SEC*1000.0 << endl;

每次调试时,结果都会发生变化。有人能告诉我为什么以及如何解决这个问题?

1 个答案:

答案 0 :(得分:0)

它基于当前的系统负载。通常情况下,您的操作系统会忙于其他事情,这种方式,有时会花费更多或更少的时间。

实际上,执行还依赖于很多其他的东西,比如内存cpu和i / o密集型,也依赖于其他东西。

我建议在循环中调用algorithm(),这实际上是在机器上获得更多可重复结果的标准方法,可以通过固定计数或实际使用传递的时间直到达到某个限制,然后计算运行时作为运行的平均值。 这样可以降低噪音并提高精度。