我试图通过包含computation time
和gettimeofday()
头文件来比较time.h
使用不同C库与sys/time.h
进行性能比较。
我在计算的开始和结束时使用gettimeofday()
并取得了不同之处。但每次我执行我的C代码时,我都会得到波动的时间作为答案。例如
0.007 sec,
0.004 sec,
0.009 sec etc.
除了手动执行50次此类执行并获取所有结果的平均值之外,我是否可以采用平均50次此类结果。
答案 0 :(得分:2)
但是每次执行我的C代码时,我都会得到波动的时间作为答案。
这种波动与C或//No comma seperation
.elementSpace tbody tr td input label{
margin-left: 0.5em;
}
无关。当前的处理器和操作系统使这样的执行时间波动(例如,因为cache misses或branch prediction可能是非确定性的,并且因为context switches,preemption,page faults, interrupts等......随时发生。)
在实践中,请仔细阅读time(7)(也许您还想使用clock_gettime(2)和/或clock(3)和/或time(1) ...)。设置您的基准测试至少持续一秒钟(因此多次重复您的基准测试功能)。运行几个基准测试和几次相同的基准测试。