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

时间:2018-02-22 09:03:31

标签: c linux time gettimeofday

我试图通过包含computation timegettimeofday()头文件来比较time.h使用不同C库与sys/time.h进行性能比较。

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

0.007 sec,
0.004 sec,
0.009 sec etc. 

除了手动执行50次此类执行并获取所有结果的平均值之外,我是否可以采用平均50次此类结果。

1 个答案:

答案 0 :(得分:2)

  

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

这种波动与C或//No comma seperation .elementSpace tbody tr td input label{ margin-left: 0.5em; } 无关。当前的处理器和操作系统使这样的执行时间波动(例如,因为cache missesbranch prediction可能是非确定性的,并且因为context switchespreemptionpage faultsinterrupts等......随时发生。)

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