Yekem berdana wasm3, wergêrek WebAssembly ya bilez

Berdeste çapa yekem wasm3, wergêrek kodê ya navber a WebAssembly ya pir bilez a ku di serî de ji bo karanîna sepanên WebAssembly li ser mîkrokontroller û platformên ku ji bo WebAssembly pêkanîna JIT-ê tune ne, têra bîranîna wan tune ku JIT-ê bimeşîne, an jî nikarin rûpelên bîranîna îcrakar ên ku ji bo bicihanîna JIT-ê hewce ne biafirînin. . Koda projeyê bi C û tê nivîsandin belav kirin ji hêla di bin lîsansa MIT.

Wasm3 derbas dibe ceribandin bi taybetmendiya WebAssembly 1.0 re hevaheng e û dikare were bikar anîn ku gelek sepanên WASI bimeşîne, performansa tenê 4-5 carî ji motorên JIT kêmtir peyda dike (rakirin, cranelift) û 11.5 carî ji darvekirina koda xwemalî kêmtir e. Dema ku bi wergêrên WebAssembly yên din re tê berhev kirin (wac, jîyan, wasm-micro-runtime), wasm3 derket ku 15.8 carî zûtir bû.

Ji bo xebitandina wasm3, ji we re 64 Kb bîra kodê û 10 Kb RAM hewce dike, ku destûrê dide te ku hûn projeyê bikar bînin da ku serîlêdanên ku di WebAssembly-ê de hatine berhev kirin bimeşînin. mîkrokontrolkeran, wek Arduino MKR*, Arduino Due, Particle Photon, ESP8266, ESP32, Air602 (W600), nRF52, nRF51 Pill Blue (STM32F103C8T6), MXChip AZ3166 (EMW3166),
Maix (K210), HiFive1 (E310), Fomu (ICE40UP5K) û ATmega1284, û her weha li ser panel û komputerên li ser bingeha mîmarên x86, x64, ARM, MIPS, RISC-V û Xtensa. Pergalên xebitandinê yên ku têne piştgirî kirin Linux (di nav de rêwerên li ser bingeha OpenWRT), Windows, macOS, Android û iOS hene. Di heman demê de gengaz e ku wasm3 di koda navberê ya WebAssembly de were berhev kirin da ku wergêr di gerokê de an ji bo darvekirina hêlîn (xwe-mêvandar) bixebite.

Performansa bilind bi karanîna teknolojiyê di wergêr de tê bidestxistin Massey Meta Machine (M3), ku ber bi pêş-wergerandina baytkodê vediguhezîne operasyonên hilberîna koda pseudo-makîneyê ya bikêrtir da ku serê deşîfrekirina bytekodê kêm bike, û modela darvekirina makîneya virtual ya li ser stack-ê vediguhezîne nêzîkatiyek bingehîn a qeydkirî ya bikêrtir. Operasyonên di M3 de fonksiyonên C-yê ne ku argumanên wan qeydên makîneya virtual in ku dikarin bi qeydên CPU-yê re werin nexşandin. Rêzên operasyonên optimîzasyonê yên ku pir caran diqewimin di operasyonên kurtayî de têne veguheztin.

Wekî din, ew dikare were destnîşan kirin encamên lêkolînê belavkirin
WebAssembly li ser Webê. Piştî analîzkirina 948 hezar malperên herî populer ên li gorî nirxandinên Alexa, lêkolîneran dîtin ku WebAssembly li ser 1639 malperan (0.17%) tê bikar anîn, yanî. li ser 1 ji her 600 malperan. Bi tevahî, 1950 modulên WebAssembly li ser malperan hatin dakêşandin, ji wan 150 yekta bûn. Dema ku çarçoveya karanîna WebAssembly tête hesibandin, encamên dilşikestî hatin çêkirin - di zêdetirî 50% bûyeran de, WebAssembly ji bo mebestên xirab hate bikar anîn, mînakî, ji bo derxistina pereyê krîpto (55.7%) û veşartina koda nivîsarên xerab (0.2%). . Bikaranîna rewa ya WebAssembly di nav de pirtûkxaneyên xebitandinê (38.8%), çêkirina lîstikan (3.5%), û xebitandina koda ne-JavaScript-a xwerû (0.9%) vedihewîne. Di 14.9% bûyeran de, WebAssembly ji bo analîzkirina jîngehê ji bo nasnameya bikarhêner (şopandina tiliyê) hate bikar anîn.

Yekem berdana wasm3, wergêrek WebAssembly ya bilez

Source: opennet.ru

Add a comment