Rhyddhad sefydlog cyntaf o adeiladwr yr Wyddgrug a ddatblygwyd gan LLVM lld

Cyflwynodd Rui Ueyama, awdur y cysylltydd LLVM lld a'r casglwr chibicc, y datganiad sefydlog cyntaf o'r cysylltydd Wyddgrug perfformiad uchel newydd, sydd yn amlwg ar y blaen i'r cysylltwyr aur GNU a LLVM lld o ran cyflymder cysylltu ffeiliau gwrthrych. Ystyrir bod y prosiect yn barod ar gyfer defnydd cynhyrchu a gellir ei ddefnyddio fel amnewidiad tryloyw cyflymach ar gyfer y cysylltydd GNU ar systemau Linux. Mae'r cynlluniau ar gyfer y datganiad mawr nesaf yn cynnwys dod Γ’ chefnogaeth i'r platfform macOS yn barod, ac wedi hynny bydd gwaith yn dechrau ar addasu'r Wyddgrug ar gyfer Windows.

Mae'r Wyddgrug wedi'i ysgrifennu yn C++ (C++20) a'i ddosbarthu o dan y drwydded AGPLv3, sy'n cydymffurfio Γ’ GPLv3 ond nad yw'n cydymffurfio Γ’ GPLv2, gan fod angen gwneud newidiadau wrth ddatblygu gwasanaethau rhwydwaith. Mae'r dewis hwn oherwydd yr awydd i gael arian datblygu - mae'r awdur yn fodlon gwerthu'r hawliau i'r cod ar gyfer ail-drwyddedu o dan drwydded ganiataol, megis MIT, neu ddarparu trwydded fasnachol ar wahΓ’n i'r rhai nad ydynt yn fodlon Γ’'r AGPL.

Mae'r Wyddgrug yn cefnogi holl nodweddion y cysylltydd GNU ac mae'n gyflym iawn - dim ond dwywaith mor gyflym y mae cysylltu Γ’ chopΓ―o ffeiliau gyda cp. Er enghraifft, wrth adeiladu Chrome 96 (maint cod 1.89 GB), mae'n cymryd 8 eiliad i adeiladu gweithredadwy c debuginfo ar gyfrifiadur 53-craidd gan ddefnyddio aur GNU, 11.7 eiliad ar gyfer LLVM lld, a dim ond 2.2 eiliad ar gyfer yr Wyddgrug (26 gwaith yn gyflymach na GNU aur). Wrth gysylltu Clang 13 (3.18 GB), mae aur GNU yn cymryd 64 eiliad, mae LLVM lld yn cymryd 5.8 eiliad, ac mae'r Wyddgrug yn cymryd 2.9 eiliad. Wrth gysylltu Firefox 89 (1.64 GB), mae aur GNU yn cymryd 32.9 eiliad, mae LLVM lld yn cymryd 6.8 eiliad, ac mae'r Wyddgrug yn cymryd 1.4 eiliad.

Rhyddhad sefydlog cyntaf o adeiladwr yr Wyddgrug a ddatblygwyd gan LLVM lld

Gall lleihau amser cyswllt wella defnyddioldeb datblygu prosiectau mawr yn fawr trwy leihau'r amser aros yn y broses o gynhyrchu ffeiliau gweithredadwy yn ystod dadfygio a phrofi newidiadau. Ysgogwyd yr Wyddgrug gan yr annifyrrwch o orfod aros i gysylltu i'w gwblhau ar Γ΄l pob newid i'r cod, yn ogystal Γ’ pherfformiad gwael cysylltwyr presennol ar systemau aml-graidd, a'r awydd i roi cynnig ar bensaernΓ―aeth gysylltu sylfaenol wahanol heb droi ato'n ddiangen. modelau cymhleth, megis cysylltu cynyddrannol.

Cyflawnir y perfformiad uchel o gysylltu ffeil gweithredadwy o nifer fawr o ffeiliau gwrthrych a baratowyd gan y casglwr yn yr Wyddgrug trwy ddefnyddio algorithmau cyflymach, mynd ati i gyfochrog gweithrediadau rhwng creiddiau CPU sydd ar gael, a defnyddio strwythurau data mwy effeithlon. Er enghraifft, mae'r Wyddgrug yn gweithredu'r dechneg o wneud cyfrifiadau dwys ar yr un pryd Γ’ chopΓ―o ffeiliau, prefetching ffeiliau gwrthrych i mewn i'r cof, defnyddio tablau stwnsh cyflym wrth ddatrys cymeriadau, sganio tablau adleoli mewn edefyn ar wahΓ’n, a dad-ddyblygu adrannau cyfunol ailadrodd mewn ffeiliau gwahanol.

Ffynhonnell: opennet.ru

Ychwanegu sylw