我在C中进行图像处理,需要在内存周围复制大块数据 - 源和目标永远不会重叠.
使用GCC(其中SSE,SSE2但不是SSE3可用)在x86平台上执行此操作的绝对最快方法是什么?
我希望解决方案可以是汇编还是使用GCC内在函数?
我发现下面的链接,但不知道它是否去了解它的最佳方式(笔者也表示有一些错误):http://coding.derkeiler.com/Archive/Assembler/comp.lang.asm. 86/2006-02/msg00123.html
编辑:请注意,副本是必要的,我无法复制数据(我可以解释为什么,但我会饶你解释:))
我试着Array.Copy用ILSpy 查看C#中的实现,但它没有向我展示实现本身.
我写了一个简单的基准测试,Array.Copy与一个简单的for循环来复制数据.Array.Copy更快.
如何更快地实施?
谢谢,谢伊
我在我的程序中使用memcpy().随着我增加变量的数量,不幸的是CPU使用率增加了.就像使用for循环迭代运行memcpy一样.Linux中是否有快速memcpy功能?我应该使用补丁并编译内核吗?