Mae adeiladau nos Rust wedi ehangu'r gallu i gyfochrog â chrynhoi

Mae pen blaen y casglwr Rust, sy'n cyflawni tasgau fel dosrannu, gwirio math, a dadansoddi benthyca, yn cefnogi gweithredu cyfochrog, a all leihau'r amser casglu yn sylweddol. Mae paraleleiddio eisoes ar gael mewn adeiladau nosweithiol o Rust ac mae wedi'i alluogi gan ddefnyddio'r opsiwn “-Z threads=8”. Bwriedir cynnwys y cyfle dan sylw yn y gangen sefydlog yn 2024.

Mae gwaith ar leihau amseroedd casglu yn Rust wedi bod yn mynd rhagddo ers sawl blwyddyn. Yn ystod 10 mis cyntaf 2023, gostyngwyd amseroedd casglu 13% ar gyfartaledd, gostyngwyd defnydd cof brig 15%, a gostyngwyd maint y ffeiliau a gynhyrchwyd gan 7%. Ar y cam hwn, cyflawnwyd cyflymiad trwy optimeiddio'r casglwr ei hun. Ar ôl hyn, symudodd y datblygwyr ymlaen i weithio ar gyflymu trwy gyfochrog â gweithrediadau ar amser llunio.

Hyd yn hyn, mae paraleleiddio yn Rust wedi'i wneud yn bennaf ar lefel y broses; er enghraifft, gall y rheolwr pecyn Cargo lansio prosesau rustc lluosog i lunio pecynnau lluosog ar yr un pryd. Mae cefnogaeth gyfochrog hefyd yn bresennol ar ochr y backend, sy'n cyflawni gweithrediadau sy'n ymwneud â chynhyrchu cod - gall y backend Rust gynhyrchu cod mewn rhannau, y gall LLVM wedyn ei brosesu ochr yn ochr. Hyd yn hyn, dim ond mewn modd un edau y gallai'r frontend brosesu cod ffynhonnell.

Er mwyn cefnogi paraleleiddio, mae'r frontend wedi'i newid i ddefnyddio llyfrgell Rayon ac wedi'i ailgynllunio'n sylweddol, er enghraifft, mae llawer o'i rannau bellach wedi'u cydamseru gan ddefnyddio mutexes a chloeon darllen / ysgrifennu, ac mae'r cod yn defnyddio mathau atomig. Mewn profion perfformiad, gallai'r gweithrediad cyfochrog newydd gasglu hyd at 2% yn arafach wrth redeg yn y modd un edau (-Z threads = 1), ond pan oedd mwy nag un edefyn, cynyddodd y cyflymder yn sylweddol. Er enghraifft, wrth osod 8 edefyn (-Z threads=8), mewn rhai sefyllfaoedd gellid lleihau'r amser llunio 50%.

Yn yr achos hwn, mae'r canlyniad yn dibynnu'n gryf ar y gosodiadau amgylchedd a'r cod a luniwyd - ar gyfer rhaglenni bach iawn sydd eisoes yn llunio'n gyflym, gall y broses o lunio modd aml-edau fod yn arafach. Yn ogystal, gall defnydd cof mewn modd aml-edau gynyddu'n sylweddol; er enghraifft, mewn profion, gwelwyd cynnydd yn y defnydd o gof o hyd at 35%.

Ffynhonnell: opennet.ru

Prynu gwesteio dibynadwy ar gyfer gwefannau sydd â diogelwch DDoS, gweinyddwyr VPS VDS 🔥 Prynu cynnal gwefannau dibynadwy gyda diogelwch DDoS, gweinyddion VPS VDS | ProHoster