我曾经看过编程模式(不是设计),如何实现缓冲区的快速复制。它包括一个交错循环和开关。问题是,它大部分时间都复制了4个字节,只使用较小的数据类型复制了缓冲区的最后几个字节。
有人可以告诉我它的名字吗?它以一个人的名字命名。它是在C中完成的,编译器输出几乎是最优的。
答案 0 :(得分:12)
使用memcpy()
,它是标准的,可移植的,并且在很多情况下也很好地进行了优化。
答案 1 :(得分:11)
听起来你在考虑Duff's device。
答案 2 :(得分:2)
答案 3 :(得分:2)
它被称为Duff的设备,请参阅Wikipedia
如果你想实现/利用快速拷贝,那么首先看看你的编译器的实现;它可能会使用更复杂的算法,使用CPU的高级功能。例如,英特尔编译器具有非常复杂的版本。