جعل عملية بناء التصحيح الخاصة بي أسرع بمقدار 100 مرة: SIMD والسيليكون المخصص لإنقاذ الموقف
2025-02-18
أثناء تطوير تطبيق تورنت قائم على لغة البرمجة سي، واجه المؤلف مشكلة في بطء وقت بدء تشغيل بناء التصحيح (20-30 ثانية). كان هذا يرجع أساسًا إلى التحقق من قيم هاش SHA1 لكل جزء من الملف الذي تم تنزيله عند بدء تشغيل البرنامج، مما تباطأ بشكل كبير بسبب Address Sanitizer في وضع التصحيح. يستكشف المقال عدة تقنيات لتحسين الأداء، بما في ذلك استخدام تعليمات SIMD وأجهزة تسريع SHA المخصصة لوحدة المعالجة المركزية. في النهاية، باستخدام مجموعة تعليمات توسيع SHA من إنتل، تم تقليل وقت بدء التشغيل إلى 866.9 مللي ثانية، مما حقق تحسنًا في الأداء بمقدار 100 مرة. يفصل المقال تفاصيل تنفيذ ومقارنة الأداء للعديد من أساليب التحسين، ويناقش تحسين المُجمِّع وتأثير مدخلات/مخرجات القرص.
التطوير