Rui Ueyama, LLVM lld bog'lovchisi va chibicc kompilyatori muallifi yangi yuqori samarali Mold bog'lovchisining birinchi barqaror versiyasini taqdim etdi, bu ob'ekt fayllarini ulash tezligi bo'yicha GNU oltin va LLVM lld bog'lovchilaridan sezilarli darajada oldinda. Loyiha ishlab chiqarishni o'rnatishga tayyor deb hisoblanadi va Linux tizimlarida GNU bog'lovchisini tezroq shaffof almashtirish sifatida foydalanish mumkin. Keyingi yirik nashrning rejalari macOS platformasini qoβllab-quvvatlashni tayyor holga keltirishni oβz ichiga oladi, shundan soβng Windows uchun Moldni moslashtirish boβyicha ishlar boshlanadi.
Mold C++ (C++ 20) tilida yozilgan va AGPLv3 litsenziyasi ostida tarqatiladi, u GPLv3-ga mos keladi, lekin GPLv2-ga mos kelmaydi, chunki u tarmoq xizmatlarini ishlab chiqishda o'zgarishlarni ochishni talab qiladi. Ushbu tanlov rivojlanish uchun mablag' olish istagi bilan bog'liq - muallif MIT kabi ruxsat beruvchi litsenziya bo'yicha qayta litsenziyalash uchun kodga bo'lgan huquqlarni sotishga yoki AGPLdan qoniqmaganlar uchun alohida tijorat litsenziyasini taqdim etishga tayyor.
Mold GNU bog'lovchining barcha xususiyatlarini qo'llab-quvvatlaydi va juda tez, cp bilan fayllarni oddiygina nusxalash tezligining atigi yarmini bog'laydi. Masalan, Chrome 96 (kod hajmi 1.89 GB) ni yaratishda GNU gold yordamida 8 yadroli kompyuterda c disk raskadrovka info bajariladigan fayllarni yaratish uchun 53 soniya, LLVM lld uchun 11.7 soniya va Mold uchun atigi 2.2 soniya (koβra 26 baravar tezroq) kerak boβladi. GNU oltin). Clang 13 (3.18 GB) ni ulashda GNU gold 64 soniya, LLVM lld 5.8 soniya va Mold 2.9 soniya vaqt oladi. Firefox 89 (1.64 GB) ni ulashda GNU gold 32.9 soniya, LLVM lld 6.8 ββsoniya va Mold 1.4 soniyani oladi.
Bog'lanish vaqtini qisqartirish, disk raskadrovka va o'zgarishlarni sinovdan o'tkazish paytida bajariladigan fayllarni yaratish jarayonida kutishni qisqartirish orqali yirik loyihalarni ishlab chiqishda foydalanish qulayligini sezilarli darajada yaxshilaydi. Mog'or kodga har bir o'zgartirishdan so'ng ulanish tugashini kutish kerak bo'lgan bezovtalanish, shuningdek, ko'p yadroli tizimlarda mavjud bo'lgan bog'lovchilarning yomon ishlashi va keraksiz usullarga murojaat qilmasdan, mutlaqo boshqacha bog'lash arxitekturasini sinab ko'rish istagi bilan bog'liq. murakkab modellar, masalan, bosqichma-bosqich bog'lanish.
Mold-da kompilyator tomonidan tayyorlangan ko'p sonli ob'ekt fayllaridan bajariladigan faylni bog'lashning yuqori mahsuldorligiga tezroq algoritmlardan foydalanish, mavjud protsessor yadrolari orasidagi operatsiyalarni faol ravishda parallellashtirish va yanada samarali ma'lumotlar tuzilmalaridan foydalanish orqali erishiladi. Misol uchun, Mold bir vaqtning o'zida fayllardan nusxa ko'chirish, ob'ekt fayllarini xotiraga oldindan olish, belgilarni hal qilishda tezkor xesh-jadvallardan foydalanish, alohida mavzudagi joyni o'zgartirish jadvallarini skanerlash va turli fayllarda takrorlangan birlashtirilgan bo'limlarni deduplikatsiya qilish bilan bir vaqtda intensiv hisob-kitoblarni amalga oshirish texnikasini amalga oshiradi.
Manba: opennet.ru