-2

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

4

2 回答 2

2

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

于 2012-04-23T11:54:38.523 回答
2

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

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

于 2012-04-23T11:20:57.547 回答