أسرع من memcpy: مقياس أداء لأساليب نسخ الذاكرة المخصصة
2025-08-11
أثناء عملية التشكيل الجانبي، وجد المؤلف أن `memcpy` كانت تشكل عنق زجاجة للرسائل الثنائية الكبيرة. تم تنفيذ العديد من أساليب نسخ الذاكرة المخصصة وقياس أدائها، بما في ذلك المتغيرات التي تستخدم تعليمات REP MOVSB وAVX (محاذاة، محاذاة تيار، ومحاذاة تيار مع استباق). بالنسبة للرسائل الصغيرة إلى المتوسطة الحجم، حققت نسخة AVX المُفككة أفضل أداء. بالنسبة للرسائل الكبيرة (> 1 ميجابايت)، كانت نسخة AVX المُحاذاة بالتيار مع الاستباق هي الأسرع، لكن أدائها في الرسائل الصغيرة كان سيئًا للغاية. الخلاصة: يوفر `std::memcpy` توازنًا جيدًا بين الأداء وقابلية التكيف؛ أساليب مخصصة غير ضرورية ما لم يكن الأداء ذا أهمية قصوى.
اقرأ المزيد