0

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

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

0.007 sec,
0.004 sec,
0.009 sec etc. 

除了手动执行 50 次这样的执行并取所有结果的平均值之外,有没有一种方法可以取 50 次这样的结果的平均值。

4

1 回答 1

2

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

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

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

于 2018-02-22T09:07:27.417 回答