لقد تم إطلاق القالب 1.1 بالفعل ، تعرف على أخبار هذا الرابط الحديث المتفوق على GNU gold و LLVM

قبل عدة أيام تم الإعلان عن إصدار الإصدار الجديد من Linker Mould 1.1 الحديث ، والذي يمكن استخدامه كبديل أسرع وشفاف لرابط جنو على أنظمة لينوكس.

في هذا الإصدار الجديد من القالب 1.1 هو الإصدار الذي يحتوي على ميزات جديدة وإصلاحات للأخطاء وتحسينات في الأداء.

حول العفن

قالب يدعم جميع ميزات رابط جنو وله أداء عالٍ جدًا ، نظرًا لأن الروابط التي ينشئها تكون أسرع مرتين فقط من نسخ الملفات باستخدام الأداة المساعدة cp.

بهذه الطريقة يؤدي تقليل وقت التجميع إلى تحسين راحة تطوير المشاريع الكبيرة بشكل كبير عن طريق تقليل وقت الانتظار في عملية التوليد القابل للتنفيذ عند تصحيح الأخطاء واختبار التغييرات.

كان الدافع وراء إنشاء Mould هو الانزعاج من الاضطرار إلى الانتظار حتى يكتمل الرابط بعد كل تغيير في الكود ، بالإضافة إلى الكفاءة المنخفضة للروابط الموجودة في الأنظمة متعددة النواة والرغبة في اختبار بنية ارتباط مختلفة جوهريًا دون اللجوء إلى نماذج معقدة غير ضرورية مثل الارتباط الإضافي.

يتم تحقيق الأداء العالي لربط ملف قابل للتنفيذ من عدد كبير من ملفات الكائنات المعدة بواسطة المترجم في Mould من خلال استخدام خوارزميات أسرع ، والتوازي النشط للعمليات بين مراكز وحدة المعالجة المركزية المتاحة ، واستخدام هياكل البيانات بشكل أكثر كفاءة.

على سبيل المثال يطبق العفن تقنية لإجراء عمليات حسابية مكثفة في وقت واحد مع نسخ الملفات ، وتحميل ملفات الكائنات بشكل استباقي في الذاكرة ، واستخدام جداول التجزئة السريعة عند حل الأحرف ، مسح جداول النقل في دفق منفصل وأقسام إزالة المضاعفات التي تتكرر في ملفات مختلفة.

المستجدات الرئيسية للقالب 1.1

في هذا الإصدار الجديد من القالب 1.1 الذي تم تقديمه ، تم إبراز أن ملف دعم تحسين ارتباط المرحلة (LTO ، تحسين وقت الارتباط).

تختلف تحسينات LTO من خلال مراعاة حالة جميع الملفات المتضمنة في عملية الإنشاء ، بينما تعمل أوضاع التحسين التقليدية على تحسين كل ملف على حدة ولا تأخذ في الاعتبار شروط استدعاء الوظائف المحددة في الملفات الأخرى.

في السابق ، عندما تم العثور على ملفات الكود الوسيط GCC أو LLVM (IR) ، تم استدعاء الروابط المناسبة ld.bfd أو ld.lld ، ولكن الآن يتعامل القالب مع ملفات IR من تلقاء نفسه ويستخدم واجهة برمجة التطبيقات الإضافية Linker ، المستخدمة أيضًا في GNU ld و روابط غنو الذهبية. تكون السرعة عند تمكين LTO أسرع بشكل هامشي فقط من الروابط الأخرى ، حيث يتم قضاء معظم الوقت في تحسين الشفرة ، وليس الارتباط.

كما تم تسليط الضوء على ذلك الخيارات المضافة "- تبعيات الطباعة" و "- تبعيات الطباعة = ممتلئ" pلإنشاء معلومات بتنسيق CSV حول التبعيات بين ملفات الإدخال ، والتي يمكن ، على سبيل المثال ، استخدامها لتحليل أسباب الاتصال عند ربط ملفات كائن معينة أو أثناء العمل لتقليل التبعيات بين الملفات.

التغيير الآخر الذي يبرز من الانقلاب الجديد هو أن دعم معمارية RISC-V (RV64) على الأنظمة الأساسية المضيفة والمستهدفة.

بالإضافة إلى ذلك ، يمكننا أيضًا إيجاد ذلك تمت إضافة خيار "–emit-relocs" لتمكين نسخ أقسام نقل العنوان من ملفات الإدخال إلى الملفات النهائية لمزيد من التحسينات ليتم تطبيقها في مرحلة ما بعد الارتباط.

من التغييرات الأخرى التي تبرز:

  • تمت إضافة خيار "–shuffle -ections" لإجراء ترتيب عشوائي للأقسام قبل تحديد عناوينها في مساحة العنوان الظاهرية.
  • تمت إضافة خيارات "-Warn-مرة" و "-warn-textrel".
  • تمت إزالة الاعتماد على libxxhash.

أخيرا إذا كنت مهتمًا بمعرفة المزيد عنها، يمكنك التحقق من التفاصيل في الرابط التالي.

كيفية تركيب القالب؟

بالنسبة لأولئك المهتمين بالقدرة على العمل مع Mould ، يمكنهم الحصول على الأداة المساعدة عن طريق تنزيل وتجميع الكود المصدري. للقيام بذلك ، ما عليك سوى فتح Terminal واكتب ما يلي:

git clone https://github.com/rui314/mold.git
cd mold
git checkout v1.1.1
make -j$(nproc) CXX=clang++
sudo make install

لمعرفة استخدام القالب ، يمكنك الرجوع إلى الوثائق على هذا الرابط.


محتوى المقال يلتزم بمبادئنا أخلاقيات التحرير. للإبلاغ عن خطأ انقر فوق هنا.

كن أول من يعلق

اترك تعليقك

لن يتم نشر عنوان بريدك الإلكتروني.

*

*

  1. المسؤول عن البيانات: ميغيل أنخيل جاتون
  2. الغرض من البيانات: التحكم في الرسائل الاقتحامية ، وإدارة التعليقات.
  3. الشرعية: موافقتك
  4. توصيل البيانات: لن يتم إرسال البيانات إلى أطراف ثالثة إلا بموجب التزام قانوني.
  5. تخزين البيانات: قاعدة البيانات التي تستضيفها شركة Occentus Networks (الاتحاد الأوروبي)
  6. الحقوق: يمكنك في أي وقت تقييد معلوماتك واستعادتها وحذفها.