Plus rapide que memcpy : un benchmark de méthodes de copie mémoire personnalisées

2025-08-11

Lors du profilage, l’auteur a constaté que `memcpy` était un goulot d’étranglement pour les messages binaires volumineux. Plusieurs méthodes personnalisées de copie mémoire ont été implémentées et comparées, notamment des variantes utilisant les instructions REP MOVSB et AVX (alignées, alignées en flux et alignées en flux avec prélecture). Pour les messages de petite à moyenne taille, la version AVX déroulée a obtenu les meilleures performances. Pour les messages volumineux (> 1 Mo), la version AVX alignée en flux avec prélecture était la plus rapide, mais ses performances sur les petits messages étaient catastrophiques. Conclusion : `std::memcpy` offre un bon équilibre entre performances et adaptabilité ; les méthodes personnalisées sont inutiles sauf si les performances sont primordiales.

Lire plus