怎样写出一个更快的 memset/memcpy ？
写过相关代码，最终的实现能在不同拷贝长度，对齐和不对齐，平均比 memcpy 快40%（gcc4.9, vc 2012），主要是以下几个优化点： 测试结果 针对不同内存尺寸（从32字节到8MB），拷贝若干次，并且针对目标地址和源地址分别对齐和不对齐的情况进行测试，并且给出和 memcpy 的对比时间： 实现代码 注意：你用VC的话，请使用 Release+打开优化，别在  Debug下测试，没意义。 相关讨论 我只能说2012年的代码，到目前为止还是比主流的 memcpy 实现快那么多，也难怪不少追求性能的项目都要自己来重新写一下 memcpy。并不排除未来各个平台的标准库会进一步优化，在此之前，为了不对标准库产生过大依赖，一些项目还是选择自己优化了。 终于看到 glibc memcpy的作者 @Ling (对不起@不到）来答题了，我只在少数有限的几台机器上测试得出比 glibc memcpy 快40%的结论，不排除 Ling 考虑的情况比我多，测试比我广，大家可以在自己的机器上进行验证。 相关参考 缓存优化：《 》 这篇文章仅仅针对大尺寸对齐的内存拷贝，实际使用有更多情况需要自己手工处理。 --------- 12月20日 更新：继续优化 最新代码测试结果（可以对比上面的表看新版本性改变情况）： 对比 rte_memcpy 根据 Ling的推荐对比了 rte_memcpy，gcc升级到5.1（rte需要avx1），memcpy_fast任然是sse2，等有空可以改个avx版本，三个内存拷贝同时评测，为了增加准确性，增加了一些尺寸，比如37字节，71字节之类的非对齐尺寸： 这里就不分析了，大家自己看上面数据吧，感兴趣可以看评论区讨论和代码，或者自己跑一下代码看看不同编译器，标准库，主机上的表现。 -----