Lëshimi i parë stabil i lidhësit Mold, i zhvilluar nga zhvilluesi i LLVM lld

Rui Ueyama, autori i lidhësit LLVM lld dhe kompilatorit chibicc, prezantoi versionin e parë stabil të lidhësit të ri me performancë të lartë Mold, i cili përshpejton dukshëm procesin e lidhjes së skedarëve objektiv në krahasim me lidhësit GNU gold dhe LLVM lld. Projekti është njohur si gati për implementime të vazhdueshme dhe mund të përdoret si një zëvendësues më të shpejtë dhe transparent të GNU linker në sistemet Linux. Plani për versionin e ardhshëm të rëndësishëm përfshin përmirësimin e mbështetjes për platformën macOS, pas së cilës do të fillojë puna për adaptimin e Mold për Windows.

Mold Ă«shtĂ« shkruar nĂ« gjuhĂ«n C++ (C++20) dhe shpĂ«rndahet nĂ«n licencĂ«n AGPLv3, e cila Ă«shtĂ« e pajtueshme me GPLv3, por jo me GPLv2, pasi kĂ«rkon hapjen e ndryshimeve gjatĂ« zhvillimit tĂ« shĂ«rbimeve nĂ« rrjet. Ky zgjedhje shpjegohet me dĂ«shirĂ«n pĂ«r tĂ« siguruar financimin e zhvillimit — autori Ă«shtĂ« i gatshĂ«m tĂ« shesĂ« tĂ« drejtat mbi kodin pĂ«r riprishtje nĂ«n njĂ« licencĂ« mĂ« lehtĂ«suese, si MIT, ose tĂ« ofrojĂ« njĂ« licencĂ« komerciale tĂ« veçantĂ« pĂ«r ata qĂ« nuk janĂ« tĂ« kĂ«naqur me AGPL.

Mold mbĂ«shtet tĂ« gjitha funksionalitetet e GNU linker dhe ofron njĂ« performancĂ« shumĂ« tĂ« lartĂ« — lidhja realizohet me shpejtĂ«si qĂ« Ă«shtĂ« vetĂ«m dy herĂ« mĂ« e ngadalshme se kopjimi i thjeshtĂ« i skedarĂ«ve me utilitĂ«n cp. PĂ«r shembull, gjatĂ« ndĂ«rtimit tĂ« Chrome 96 (me njĂ« madhĂ«si kodi prej 1.89 GB), procesi i lidhjes sĂ« skedarĂ«ve tĂ« ekzekutueshĂ«m me debuginfo nĂ« njĂ« kompjuter me 8 bĂ«rthama duke pĂ«rdorur GNU gold zgjat 53 sekonda, LLVM lld zgjat 11.7 sekonda, ndĂ«rsa Mold vetĂ«m 2.2 sekonda (26 herĂ« mĂ« shpejt se GNU gold). GjatĂ« lidhjes sĂ« Clang 13 (3.18 GB) nĂ« GNU gold nevojiten 64 sekonda, nĂ« LLVM lld 5.8 sekonda, ndĂ«rsa nĂ« Mold 2.9 sekonda. PĂ«r lidhjen e Firefox 89 (1.64 GB) nĂ« GNU gold nevojiten 32.9 sekonda, nĂ« LLVM lld 6.8 sekonda, ndĂ«rsa nĂ« Mold 1.4 sekonda.

Lëshimi i parë stabil i lidhësit Mold, i zhvilluar nga zhvilluesi i LLVM lld

Reduktimi i kohës së lidhjes mundëson një rritje të konsiderueshme të lehtësisë së zhvillimit të projekteve të mëdha duke reduktuar kohën e kërkuar për krejt ndërtimin e skedarëve ekzekutiv gjatë debukimit dhe testimit të ndryshimeve. Motivi për krijimin e Mold ishte shqetësimi për pritjen e mbarimit të lidhjes pas çdo ndryshimi në kod, si dhe efikasiteti i ulët i lidhësve ekzistues në sistemet me shumë bërthama dhe dëshira për të provuar një arkitekturë ndërlidhjeje thelbësisht të ndryshme, pa përdorur modele tepër të komplikuara si ndërlidhja inkrementale.

Performanca e lartë e lidhjes së skedarit ekzekutiv nga një numër i madh skedarësh objektiv të përgatitur nga kompiliatori në Mold arrihet përmes përdorimit të algoritmeve më të shpejtë, paralelizimit aktiv të operacioneve midis bërthamave të disponueshme të CPU dhe aplikimin e strukturave të dhënash më efektive. Për shembull, në Mold është implementuar një teknikë për kryerjen e llogaritjeve intensive në të njëjtën kohë me kopjimin e skedarëve, ngarkimi parashikues i skedarëve objektiv në kujtesë, përdorimi i tabelave të shpejta për zgjidhjen e simboleve, skanimi i tabelave të zhvendosjes në një thread të veçantë dhe deduplikimi i seksioneve të përsëritura në skedarë të ndryshëm.

Burimi: opennet.ru

Bleni hostim tĂ« besueshĂ«m pĂ«r faqe me mbrojtje nga DDoS, serverĂ« VPS VDS đŸ”„ Bleni hostim tĂ« besueshĂ«m pĂ«r faqe me mbrojtje nga DDoS, serverĂ« VPS VDS | ProHoster