Unua stabila eldono de la Moldkonstruanto evoluigita fare de LLVM lld

Rui Ueyama, verkinto de la LLVM lld ligilo kaj la chibicc-kompililo, prezentis la unuan stabilan eldonon de la nova alt-efikeca Mold-ligilo, kiu estas rimarkeble pli rapida ol la GNU-oro kaj LLVM lld-ligiloj en la rapideco de ligado de objektodosieroj. La projekto estas konsiderata preta por efektivigo de produktado kaj povas esti uzata kiel pli rapida, travidebla anstataŭaĵo por la GNU-ligilo en Linuksaj sistemoj. Planoj por la venonta grava eldono inkluzivas kompletigi subtenon por la macOS-platformo, post kiu laboro komenciĝos pri adapto de Mold por Vindozo.

Mold estas skribita en C++ (C++20) kaj estas licencita sub AGPLv3, kiu estas kongrua kun GPLv3, sed ne kongrua kun GPLv2, ĉar ĝi postulas malfermajn ŝanĝojn dum evoluigado de retservoj. Ĉi tiu elekto estas klarigita per la deziro akiri disvolvan financadon - la aŭtoro volas vendi la rajtojn al la kodo por relicencado sub permesema permesilo, kiel ekzemple MIT, aŭ disponigi apartan komercan permesilon por tiuj kiuj ne estas kontentaj kun la AGPL.

Mold subtenas ĉiujn funkciojn de la GNU-ligilo kaj havas tre altan rendimenton - ligado estas farita kun rapideco nur duono pli rapide ol simple kopiado de dosieroj per la cp ilo. Ekzemple, dum konstruo de Chrome 96 (kodgrandeco 1.89 GB), necesas 8 sekundoj por ligi ruleblajn dosierojn kun senciminfoj sur 53-kerna komputilo uzante GNU-oron, LLVM lld - 11.7 sekundojn, kaj Mold nur 2.2 sekundojn (26 fojojn pli rapide ol GNU-oro). Dum ligado de Clang 13 (3.18 GB), ĝi daŭras 64 sekundojn en GNU-oro, 5.8 sekundojn en LLVM lld, kaj 2.9 sekundojn en Mold. Konstruante Firefox 89 (1.64 GB), ĝi daŭras 32.9 sekundojn en GNU-oro, 6.8 sekundojn en LLVM lld, kaj 1.4 sekundojn en Mold.

Unua stabila eldono de la Moldkonstruanto evoluigita fare de LLVM lld

Redukti la konstrutempon povas signife plibonigi la oportunon evoluigi grandajn projektojn reduktante la atendon en la procezo de generado de ruleblaj dosieroj dum senararigado kaj testado de ŝanĝoj. La instigo por kreado de Mold estis la frustriĝo de devi atendi ke ligo finiĝos post ĉiu kodŝanĝo, la malbona agado de ekzistantaj ligiloj sur plurkernaj sistemoj, kaj la deziro provi fundamente malsaman ligan arkitekturon sen frekventi tro komplikaj modeloj tiaj. kiel pliiga ligo.

Alta rendimento de ligado de rulebla dosiero de granda nombro da kompil-pretaj objektodosieroj en Mold estas atingita per uzado de pli rapidaj algoritmoj, aktiva paraleligo de operacioj inter disponeblaj CPU-kernoj kaj la uzo de pli efikaj datumstrukturoj. Ekzemple, Mold efektivigas teknikojn por elfarado de intensaj kalkuloj dum kopiado de dosieroj, antaŭ-ŝarĝado de objektodosieroj en memoron, uzante rapidajn hashtabelojn por karaktero rezolucio, skanante translokadtablojn en aparta fadeno, kaj deduplikante kunfanditajn sekciojn kiuj estas ripetitaj trans malsamaj dosieroj.

fonto: opennet.ru

Aldoni komenton