之间的计算我想复制C数组到另一个数据,但之间的计算(即不只是复制相同的内容从一个到另一个,但有一个修改数据):更快的方法复制C数组与
int aaa;
int src[ARRAY_SIZE];
int dest[ARRAY_SIZE];
//fill src with data
for (aaa = 0; aaa < ARRAY_SIZE; aaa++)
{
dest[aaa] = src[aaa] * 30;
}
这是520或更高的缓冲区,所以for循环是相当可观的。
有没有什么办法可以提高编码性能?我做了一些关于这个话题的研究,但是我找不到任何关于这个案例的具体内容,只是关于简单的复制缓冲区到缓冲区(例如:here,here和here)。
环境:使用嵌入式Linux的ARM的GCC。但是,上面的特定代码用于在专用处理器内部运行的C项目中进行DSP计算。通用处理器是OMAP L138(DSP处理器包含在L138中)。
看看达夫设备:http://en.wikipedia.org/wiki/Duff%27s_device –
OpenMP /线程可以加速它的因素。 – Carlise
@Carlise你确定多线程在使用多核时不会产生缓存问题吗?在单一的情况下,你会支付不同线程之间的上下文切换。 – DRC