Kutanga kuburitswa kwakagadzikana kweMold muvaki akagadzirwa neLLVM lld

Rui Ueyama, munyori weLLVM lld linker uye chibicc compiler, akapa yekutanga yakagadzikana kuburitswa kweyepamusoro-inoshanda Mold linker, iyo inooneka pamberi peGNU gold neLLVM lld linkers maererano nechinhu faira chinobatanidza kumhanya. Iyo purojekiti inoonekwa seyakagadzirira kutumirwa kwekugadzira uye inogona kushandiswa sekukurumidza kwakajeka kutsiva iyo GNU linker pane Linux masisitimu. Zvirongwa zvekuburitswa kukuru kunotevera zvinosanganisira kuunza tsigiro yepuratifomu yeMacOS pakugadzirira, mushure mezvo basa richatanga pakugadzirisa Mold yeWindows.

Mold yakanyorwa neC++ (C++20) uye yakagoverwa pasi perezinesi reAGPLv3, iro GPLv3 rinoenderana asi risingaenderane neGPLv2, sezvo richida kuti shanduko dzivhurwe pakugadzira network masevhisi. Sarudzo iyi imhaka yechishuwo chekuwana mari yekusimudzira - munyori anoda kutengesa kodzero kune kodhi yerezenisi pasi perezinesi remvumo, seMIT, kana kupa rakasiyana rezinesi rekutengesa kune avo vasina kugutsikana neAGPL.

Mold inotsigira ese maficha eGNU linker uye inokurumidza, ichibatanidza nehafu chete yekumhanya kwekungokopa mafaera necp. Semuenzaniso, pakuvaka Chrome 96 (code size 1.89 GB), zvinotora 8 seconds kuvaka c debuginfo executables pa53-core computer uchishandisa GNU gold, 11.7 seconds for LLVM lld, uye chete 2.2 seconds for Mold (26 times faster than GNU goridhe). Kana uchibatanidza Clang 13 (3.18 GB), GNU goridhe inotora 64 seconds, LLVM lld inotora 5.8 seconds, uye Mold inotora 2.9 seconds. Kana uchibatanidza Firefox 89 (1.64 GB), GNU goridhe inotora 32.9 seconds, LLVM lld inotora 6.8 seconds, uye Mold inotora 1.4 seconds.

Kutanga kuburitswa kwakagadzikana kweMold muvaki akagadzirwa neLLVM lld

Kuderedza nguva yekubatanidza kunogona kuvandudza zvakanyanya kushandiswa kwekugadzira mapurojekiti makuru nekudzikisa kumirira mukuita kwekugadzira mafaira anogoneka panguva yekugadzirisa uye kuyedza shanduko. Mould yakakurudzirwa nekugumbuka kwekumirira kubatanidza kuti ipedze mushure mekuchinja kwese kune kodhi, pamwe nekusaita zvakanaka kweazvino malinker pane akawanda-core masisitimu, uye chishuwo chekuyedza yakanyatsosiyana yekubatanidza dhizaini pasina kushandisa zvisina kufanira. yakaoma mhando, senge incremental linking.

Kuita kwepamusoro kwekubatanidza faira rinogoneka kubva kunhamba huru yemafaira echinhu chakagadzirirwa nemuunganidzi muMould inowanikwa nekushandisa nekukurumidza maalgorithms, kushingaira kuenzanisa mashandiro pakati peanowanikwa CPU cores, uye kushandisa zvakanyanya hunyanzvi data zvimiro. Semuyenzaniso, Mould inoshandisa hunyanzvi hwekuita masvomhu akadzama panguva imwe chete nekukopa mafaera, kufanoisa mafaera echinhu mundangariro, uchishandisa matafura ehashi nekukurumidza paunenge uchigadzirisa mavara, kuongorora matafura ekutamisa mune imwe shinda yakaparadzana, uye kupatsanura zvikamu zvakabatanidzwa zvinodzokororwa mumafaira akasiyana.

Source: opennet.ru

Voeg