我刚刚为这个超级问题/答案做了一些基准测试为什么我的程序在准确地循环 8192 个元素时很慢?
我想在一个核心上做基准测试,所以程序是单线程的。但是它并没有达到一个核心的100%使用率,最多使用60%。所以我的测试并不准确。
我正在使用 Qt Creator,使用 MinGW 发布模式进行编译。
是否有任何参数可以设置以获得更好的性能?我无法利用 CPU 能力是否正常?它与Qt有关吗?是否有一些中断或某些东西阻止代码以 100% 运行...
这是主循环
// horizontal sums for first two lines
for(i=1;i<SIZE*2;i++){
hsumPointer[i]=imgPointer[i-1]+imgPointer[i]+imgPointer[i+1];
}
// rest of the computation
for(;i<totalSize;i++){
// compute horizontal sum for next line
hsumPointer[i]=imgPointer[i-1]+imgPointer[i]+imgPointer[i+1];
// final result
resPointer[i-SIZE]=(hsumPointer[i-SIZE-SIZE]+hsumPointer[i-SIZE]+hsumPointer[i])/9;
}
这在 SIZE=8193 的 SIZE*SIZE 浮点数组上运行 10 次,该数组在堆上。