为了给算法计时(毫秒),我有以下代码:
clock_t start = clock();
algorithm();
clock_t end = clock();
cout << float(end-start)/CLOCKS_PER_SEC*1000.0 << endl;每次调试时,结果都会发生变化。有人能告诉我为什么和怎样才能修复这个结果吗?
发布于 2014-07-04 06:02:42
它基于当前系统负载。通常情况下,你的操作系统会忙于其他事情,这样,有时它会或多或少地占用时间。
实际上,执行也依赖于很多其他的东西,比如内存-cpu和I/O的密集度,同样也依赖于其他东西。
我建议在循环中调用algorithm(),这确实是在机器上获得更多可重复结果的标准方法,通过固定的计数或实际使用经过的时间,直到达到一定的限制,然后计算运行时作为运行的平均值。这将减少噪声并提高精度。
https://stackoverflow.com/questions/24563291
复制相似问题