HeadlinesBriefing favicon HeadlinesBriefing.com

mold: رابط متوازي بشكل هائل

Hacker News •
×

الربط هو خطوة حاسمة في عملية بناء البرمجيات التي تجمع ملفات الكائنات المترجمة في ملف تنفيذي واحد أو مكتبة مشتركة. على الرغم من عقود من الجهد الهندسي، لا تزال أوقات الربط عنق زجاجة كبير في دورة التحرير-الترجمة-التصحيح، خاصة لبرامج C++ الكبيرة. تستغل الروابط الحالية توازيًا محدودًا، تاركة معظم نوى وحدة المعالجة المركزية خاملة أثناء الربط.

نقدم mold، رابط Unix/Linux يطبق التوازي في البيانات بشكل منهجي عبر خط أنابيب الربط بأكمله. نحلل أولاً القيود المعمارية التي تمنع الروابط الحالية من التوسع، بما في ذلك حل الرموز المتشابك ومعالجة الأرشيف، ثم نوضح كيف يتغلب تصميم جديد يفصل بينها على هذه القيود.

على البرامج الكبيرة في العالم الحقيقي، يربط mold ملفات تصحيح بحجم عدة غيغابايت في بضع ثوانٍ على الأكثر، وغالبًا في أقل من ثانية. إنه أسرع 2.4-16.1x من رابط lld الأحدث، وحتى 112x أسرع من GNU ld التقليدي. تظهر دراسة استئصالية أنه لا توجد تحسينات مفردة تهيمن؛ يأتي التسريع من التأثير التراكمي لتوازي جميع التمريرات.

الكيانات الرئيسية: الأشخاص: Rui Ueyama