Prva izdaja wasm3, hitrega tolmača WebAssembly

Na voljo prva izdaja wasm3, zelo hiter vmesni tolmač kode WebAssembly, namenjen predvsem uporabi pri izvajanju aplikacij WebAssembly na mikrokrmilnikih in platformah, ki nimajo implementacije JIT za WebAssembly, nimajo dovolj pomnilnika za izvajanje JIT ali ne morejo ustvariti izvedljivih pomnilniških strani, potrebnih za implementacijo JIT . Koda projekta je napisana v C in distributer pod licenco MIT.

Wasm3 prehaja testi združljiv s specifikacijo WebAssembly 1.0 in se lahko uporablja za zagon številnih aplikacij WASI, pri čemer je zmogljivost le 4-5-krat nižja od motorjev JIT (dvig, dvigalo za žerjav) in 11.5-krat nižje od izvajanja izvorne kode. V primerjavi z drugimi tolmači WebAssembly (wac, življenje, wasm-micro-runtime), se je izkazalo, da je wasm3 15.8-krat hitrejši.

Za zagon wasm3 potrebujete 64 Kb pomnilnika kode in 10 Kb RAM-a, kar vam omogoča uporabo projekta za zagon aplikacij, prevedenih v WebAssembly na mikrokontrolerji, kot so Arduino MKR*, Arduino Due, Particle Photon, ESP8266, ESP32, Air602 (W600), nRF52, nRF51 Blue Pill (STM32F103C8T6), MXChip AZ3166 (EMW3166),
Maix (K210), HiFive1 (E310), Fomu (ICE40UP5K) in ATmega1284 ter na ploščah in računalnikih, ki temeljijo na arhitekturah x86, x64, ARM, MIPS, RISC-V in Xtensa. Podprti operacijski sistemi vključujejo Linux (vključno z usmerjevalniki, ki temeljijo na OpenWRT), Windows, macOS, Android in iOS. Možno je tudi prevesti wasm3 v vmesno kodo WebAssembly za zagon tolmača v brskalniku ali za ugnezdeno izvajanje (samostojno gostovanje).

Visoka zmogljivost je dosežena z uporabo tehnologije v tolmaču Stroj Massey Meta (M3), ki naprej prevaja bajtno kodo v učinkovitejše operacije ustvarjanja psevdostrojne kode, da zmanjša stroške dekodiranja bajtne kode in pretvori model izvajanja navideznega stroja, ki temelji na skladu, v učinkovitejši pristop, ki temelji na registru. Operacije v M3 so funkcije C, katerih argumenti so registri navideznega stroja, ki jih je mogoče preslikati v registre CPU. Zaporedja optimizacijskih operacij, ki se pogosto pojavljajo, se pretvorijo v operacije povzetka.

Poleg tega je mogoče opozoriti rezultate raziskav širjenje
WebAssembly na spletu. Po analizi 948 tisoč najbolj priljubljenih spletnih mest glede na ocene Alexa so raziskovalci ugotovili, da se WebAssembly uporablja na 1639 spletnih mestih (0.17%), tj. na 1 od vsakih 600 spletnih mest. Skupno je bilo na spletnih mestih prenesenih 1950 modulov WebAssembly, od tega 150 edinstvenih. Pri obravnavi obsega uporabe WebAssembly so bili sprejeti razočarajoči zaključki - v več kot 50% primerov je bil WebAssembly uporabljen za zlonamerne namene, na primer za rudarjenje kriptovalute (55.7%) in skrivanje kode zlonamernih skriptov (0.2%). . Legitimne uporabe WebAssembly vključujejo izvajanje knjižnic (38.8 %), ustvarjanje iger (3.5 %) in izvajanje kode po meri, ki ni JavaScript (0.9 %). V 14.9 % primerov je bil WebAssembly uporabljen za analizo okolja za identifikacijo uporabnika (prstni odtis).

Prva izdaja wasm3, hitrega tolmača WebAssembly

Vir: opennet.ru

Dodaj komentar