LLVM lld tomonidan ishlab chiqilgan Mold builderning birinchi barqaror versiyasi

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.

LLVM lld tomonidan ishlab chiqilgan Mold builderning birinchi barqaror versiyasi

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

a Izoh qo'shish