2011-05-19 wcdj
达夫设备的思路:
把原数组以8个 int 为单位分成若干个小组,复制的时候以小组为单位复制,即一次复制8个 int 。也就是说,在传统的memcpy函数中以一次比较运算的代价换来1个int的复制,而在达夫设备中,却能以一次比较运算的代价换来8个int的复制。而switch语句则是用来处理分组时剩下的不到8个的int(这些剩余的不是数组最后的,而是数组最开始的),很巧妙。
参考:
论坛上的一个相关帖子
达夫设备的详细说明
2011-05-19 wcdj
达夫设备的思路:
把原数组以8个 int 为单位分成若干个小组,复制的时候以小组为单位复制,即一次复制8个 int 。也就是说,在传统的memcpy函数中以一次比较运算的代价换来1个int的复制,而在达夫设备中,却能以一次比较运算的代价换来8个int的复制。而switch语句则是用来处理分组时剩下的不到8个的int(这些剩余的不是数组最后的,而是数组最开始的),很巧妙。
参考:
论坛上的一个相关帖子
达夫设备的详细说明