在x86_64上memcpy的速度有多快

时间:2012-04-23 11:16:34

标签: c linux x86-64

使用gcc编译器和Linux在x86_64上memcpy的速度有多快。它最多等于Time to transfer 1 long * Number of longs还是比它更好?

2 个答案:

答案 0 :(得分:2)

这完全取决于函数的CRT实现 - 您应该能够看到编译器的源代码并且100%确定。

通常,它经过优化,可以复制对机器有效的块,并根据开始/结束地址的对齐执行适当的边缘案例处理。鉴于需要处理任何长度和对齐,它不可能比纯long副本更快(该语句再次以你的平台为模),但减速也不太可能对你的实际应用产生明显的影响

答案 1 :(得分:2)

AFAIK,x86(32位和64位)最快的副本使用16字节宽的数据传输,这是一个XMM寄存器的大小。这是英特尔优化手册中推荐的方法。但是,可以肯定的是,您必须反汇编系统库并查看它使用的方法。