1
time_start();

int op = 0;
for(int i = 1; i <= n; i++)
    op += arr[i]*pow(x, i);

time_stop();

这是我要测量的代码部分,time_start() 和 time_stop() 函数只是将 clock() 输出保存在某处,然后 execution_time() 返回差值,给出执行时间。

问题是对于 < 50000,输出仅为 0 毫秒或 1 毫秒。这是正确的输出吗?这可以更准确吗?

4

1 回答 1

1

您需要在运行时和计时器代码的分辨率之间有足够的“比例”,以获得准确和可测量的结果。最简单的解决方案是在被测试的一小段代码上迭代数百(或数千)次。

但是,任何方法都可能产生缓存效应,因此请确保您测量的是您的实际想法。

于 2013-04-06T15:03:21.013 回答