Más rápido que memcpy: Un benchmark de métodos de copia de memoria personalizados
Durante el perfilado, el autor descubrió que `memcpy` era un cuello de botella para mensajes binarios grandes. Se implementaron y se compararon varios métodos personalizados de copia de memoria, incluyendo variaciones que usan instrucciones REP MOVSB y AVX (alineado, alineado en stream y alineado en stream con prefetch). Para mensajes de tamaño pequeño a mediano, la versión AVX con bucle desplegado tuvo el mejor rendimiento. Para mensajes grandes (> 1 MB), la versión AVX alineada en stream con prefetch fue la más rápida, pero su rendimiento en mensajes pequeños fue pésimo. ¿La conclusión? `std::memcpy` ofrece un buen equilibrio entre rendimiento y adaptabilidad; los métodos personalizados son innecesarios a menos que el rendimiento sea primordial.