处理器的计算时间因执行而异,每次在 C 程序中使用 gettimeofday()



我正在尝试通过包含time.hsys/time.h头文件来比较使用不同的 C 库与gettimeofday()进行性能比较的computation time

我在计算的开始和结束时使用了gettimeofday(),并取了差额。但是每次我执行我的 C 代码时,我都会得到波动的时间作为答案。例如

0.007 sec,
0.004 sec,
0.009 sec etc. 

有没有办法我可以取 50 个此类结果的平均值,而不是手动执行 50 个这样的执行并取所有结果的平均值。

但是每次我执行 C 代码时,我都会得到波动的时间作为答案。

这种波动与 C 或gettimeofday无关。当前的处理器和操作系统使这种执行时间波动(例如,因为缓存未命中或分支预测可能是不确定的,并且因为上下文切换,抢占,页面错误,中断等......随时发生)。

在实践中,请仔细阅读 time(7)(也许您还想使用 clock_gettime(2) 和/或时钟 (3) 和/或时间 (1)...)。将基准测试设置为至少持续一秒钟(因此请多次重复基准测试函数)。运行多个基准测试,并多次运行相同的基准测试。

相关内容

  • 没有找到相关文章

最新更新