使用gcc编译器和Linux在x86_64上memcpy
的速度有多快。它最多等于Time to transfer 1 long * Number of longs
还是比它更好?
答案 0 :(得分:2)
这完全取决于函数的CRT实现 - 您应该能够看到编译器的源代码并且100%确定。
通常,它经过优化,可以复制对机器有效的块,并根据开始/结束地址的对齐执行适当的边缘案例处理。鉴于需要处理任何长度和对齐,它不可能比纯long
副本更快(该语句再次以你的平台为模),但减速也不太可能对你的实际应用产生明显的影响
答案 1 :(得分:2)
AFAIK,x86(32位和64位)最快的副本使用16字节宽的数据传输,这是一个XMM寄存器的大小。这是英特尔优化手册中推荐的方法。但是,可以肯定的是,您必须反汇编系统库并查看它使用的方法。