Прво стабилно издање алата за прављење калупа које је развио ЛЛВМ ллд

Руи Уеиама, аутор ЛЛВМ ллд линкера и цхибицц компајлера, представио је прво стабилно издање новог Молд линкера високих перформанси, који је приметно бржи од ГНУ голд и ЛЛВМ ллд линкера у брзини повезивања објектних датотека. Сматра се да је пројекат спреман за производну имплементацију и може се користити као бржа, транспарентна замена за ГНУ линкер на Линук системима. Планови за следеће велико издање укључују комплетирање подршке за мацОС платформу, након чега ће почети рад на прилагођавању Молд-а за Виндовс.

Молд је написан у Ц++ (Ц++20) и лиценциран је под АГПЛв3, који је компатибилан са ГПЛв3, али није компатибилан са ГПЛв2, јер захтева отворене промене приликом развоја мрежних услуга. Овај избор се објашњава жељом за добијањем средстава за развој – аутор је спреман да прода права на код за поновно лиценцирање под дозвољеном лиценцом, као што је МИТ, или да обезбеди посебну комерцијалну лиценцу за оне који нису задовољни АГПЛ-ом.

Молд подржава све карактеристике ГНУ линкера и има веома високе перформансе - повезивање се изводи брзином која је само упола мања од једноставног копирања датотека помоћу цп услужног програма. На пример, када се прави Цхроме 96 (величина кода 1.89 ГБ), потребно је 8 секунде да се извршне датотеке повежу са информацијама о отклањању грешака на рачунару са 53 језгара користећи ГНУ голд, ЛЛВМ ллд - 11.7 секунди и Молд само 2.2 секунде (26 пута брже од ГНУ злато). Када повежете Цланг 13 (3.18 ГБ), потребно је 64 секунде у ГНУ злату, 5.8 секунди у ЛЛВМ ллд и 2.9 секунди у Молд-у. Када се прави Фирефок 89 (1.64 ГБ), потребно је 32.9 секунди у ГНУ злату, 6.8 секунди у ЛЛВМ ллд и 1.4 секунде у Молд-у.

Прво стабилно издање алата за прављење калупа које је развио ЛЛВМ ллд

Смањење времена израде може значајно побољшати погодност развоја великих пројеката смањењем чекања у процесу генерисања извршних датотека приликом отклањања грешака и тестирања промена. Мотивација за креирање Молд-а била је фрустрација што се мора чекати да се повезивање заврши након сваке промене кода, лоше перформансе постојећих линкера на системима са више језгара и жеља да се испроба фундаментално другачија архитектура повезивања без прибегавања претерано компликованим моделима као што је као инкрементално повезивање.

Високе перформансе повезивања извршне датотеке са великим бројем објектних датотека које је припремио компајлер у Молд-у се постижу коришћењем бржих алгоритама, активном паралелизацијом операција између доступних ЦПУ језгара и употребом ефикаснијих структура података. На пример, Молд примењује технике за извођење интензивних прорачуна током копирања датотека, претходно учитавање објектних датотека у меморију, коришћење брзих хеш табела за резолуцију знакова, скенирање табела премештања у посебној нити и уклањање дупликата спојених делова који се понављају у различитим датотекама.

Извор: опеннет.ру

Додај коментар