Mais rápido que memcpy: Um benchmark de métodos de cópia de memória personalizados

2025-08-11

Durante a análise de desempenho, o autor descobriu que `memcpy` era um gargalo para mensagens binárias grandes. Vários métodos personalizados de cópia de memória foram implementados e comparados, incluindo variações usando instruções REP MOVSB e AVX (alinhado, alinhado em stream e alinhado em stream com pré-busca). Para mensagens de tamanho pequeno a médio, a versão AVX com loop desdobrado apresentou o melhor desempenho. Para mensagens grandes (> 1 MB), a versão AVX alinhada em stream com pré-busca foi a mais rápida, mas seu desempenho em mensagens pequenas foi péssimo. A conclusão? `std::memcpy` oferece um bom equilíbrio entre desempenho e adaptabilidade; métodos personalizados são desnecessários a menos que o desempenho seja primordial.

Leia mais