Prva izdaja wasm3, hitrega interpreterja WebAssembly

Na voljo prvi izvod wasm3, zelo hitrega interpreterja posredne kode WebAssembly, predvsem zasnovanega za zagon aplikacij WebAssembly na mikrokrmilnikih in platformah, za katere ni implementacije JIT za WebAssembly, nimajo dovolj pomnilnika za delovanje JIT ali ne omogočajo ustvarjanja izvršljivih strani pomnilnika, potrebnih za izvedbo JIT. Koda projekta je napisana v jeziku C in se distribuira pod licenco MIT.

Wasm3 poleg tega testi preverja združljivost s specifikacijo WebAssembly 1.0 in se lahko uporablja za zagon številnih aplikacij WASI, pri čemer zagotavlja zmogljivost, ki je le 4-5 krat nižja od JIT motorjev (liftoff, cranelift) in 11,5 krat nižja od izvajanja nativne kode. Pri primerjavi z drugimi interpreterji WebAssembly (wac, life, wasm-micro-runtime), je wasm3 bil hitrejši 15,8 krat.

Za delovanje wasm3 potrebujete 64 Kb pomnilnika za kodo in 10 Kb RAM-a, kar omogoča uporabo projekta za izvajanje programov, prevedenih v WebAssembly, na mikrokrmilnikih, 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, pa tudi na ploščah in računalnikih, ki temeljijo na arhitekturah x86, x64, ARM, MIPS, RISC-V in Xtensa. Med operacijskimi sistemi so podprti Linux (vključno z usmerjevalniki na osnovi OpenWRT), Windows, macOS, Android in iOS. Prav tako je možna kompilacija wasm3 v posredno kodo WebAssembly za izvajanje interpreterja v brskalniku ali za samostojno zagon (self-hosting).

Visoka zmogljivost je dosežena z uporabo tehnik Massey Meta Machine (M3), kjer se za zmanjšanje stroškov dekodiranja bajtkode izvaja predhodno prevajanje bajtkode v učinkovitejše operacije, ki proizvajajo pseudo-strojno kodo, model izvajanja strojne virtualne naprave pa se pretvori v učinkovit pristop, ki temelji na registrih. Operacije v M3 predstavljajo funkcije C, katerih argumenti so registri virtualne naprave, ki jih je mogoče preslikati na registre CPU. Pogosto uporabljeni zaporedji operacij se optimizirata v združene operacije.

Dodatno lahko omenimo rezultati raziskave razširjanja
WebAssembly v spletu. Po analizi 948 tisoč najbolj priljubljenih spletnih mest po razvrstitvi Alexa so raziskovalci ugotovili, da se WebAssembly uporablja na 1639 spletnih mestih (0,17 %), kar pomeni, da ga uporablja eno od vsakih 600 spletnih mest. Na spletnih mestih je bila zaznana naloga 1950 modulov WebAssembly, od katerih je 150 unikatnih. Pri pregledu področja uporabe WebAssembly so bili izločeni neprijetni zaključki — v več kot 50 % primerov je bil WebAssembly uporabljen za zlonamerne namene, kot je rudarjenje kriptovalut (55,7 %) in skrivanje kode zlonamernih skript (0,2 %). Med legitimnimi uporabljenimi primeri WebAssembly so bili izpostavljeni izvajanje knjižnic (38,8 %), ustvarjanje iger (3,5 %) in izvajanje lastne kode, napisane ne v JavaScriptu (0,9 %). V 14,9 % primerih se je WebAssembly uporabljal za analizo okolja za identifikacijo uporabnika (fingerprinting).

Prva izdaja wasm3, hitrega interpreterja WebAssembly

Izvor: opennet.ru

Kupite zanesljivo gostovanje za spletne strani z zaščito pred DDoS, VPS VDS strežniki 🔥 Kupite zanesljivo gostovanje za spletne strani z zaščito pred DDoS, VPS VDS strežniki | ProHoster