Prvo izdanje wasm3, brzog interpreter-a WebAssembly

Dostupno prvo izdanje wasm3, vrlo brzi interpreter srednjeg koda WebAssembly, prvenstveno osmišljen za pokretanje WebAssembly aplikacija na mikrokontrolerima i platformama koje nemaju JIT implementaciju za WebAssembly, nemaju dovoljno memorije za rad JIT-a ili ne dopuštaju izradu izvršnih stranica memorije potrebnih za JIT implementaciju. Kod projekta je napisan u C jeziku i distribuira se pod MIT licencom.

Wasm3 prolazi testove na usklađenost sa specifikacijom WebAssembly 1.0 i može se koristiti za pokretanje mnogih WASI aplikacija, pružajući performanse koje su samo 4-5 puta niže od JIT motora (liftoff, cranelift) i 11.5 puta niže od izvršavanja nativnog koda. U poređenju sa drugim interpreterima WebAssembly (wac, life, wasm-micro-runtime), wasm3 se pokazao bržim 15.8 puta.

Za rad wasm3 potrebno je 64Kb memorije za kod i 10Kb RAM-a, što omogućava primenu projekta za izvođenje WebAssembly aplikacija na mikrokontrolerima, kao što su Arduino MKR*, Arduino Due, Particle Photon, ESP8266, ESP32, Air602 (W600), nRF52, nRF51 Blue Pill (STM32F103C8T6), MXChip AZ3166 (EMW3166),
Maix (K210), HiFive1 (E310), Fomu (ICE40UP5K) i ATmega1284, kao i na pločama i računarima sa arhitekturama x86, x64, ARM, MIPS, RISC-V i Xtensa. Kao operativni sistemi podržani su Linux (uključujući rutere zasnovane na OpenWRT), Windows, macOS, Android i iOS. Takođe je moguća kompilacija wasm3 u srednji kod WebAssembly za izvođenje interpreter u pregledaču ili za ugrađeno pokretanje (self-hosting).

Visoke performanse se postižu primenom tehnike Massey Meta Machine (M3), koja smanjuje troškove dekodiranja bajtkoda unapred prevodeći bajtkod u efikasnije operacije koje generišu pseudo-mašinski kod, dok se model izvršavanja stakaste virtuelne mašine transformiše u efikasniji registrički pristup. Operacije u M3 predstavljaju C funkcije, čiji su argumenti registri virtuelne mašine koji se mogu mapirati na registre CPU-a. Često korišćene sekvence operacija za optimizaciju se transformišu u sažete operacije.

Dodatno se može istaknuti rezultati istraživanja rasprostranjenja
WebAssembly na webu. Analizirajući 948 tisuća najpopularnijih web stranica prema Alexa ljestvici, istraživači su otkrili da se WebAssembly koristi na 1639 stranica (0,17%), što je 1 od svakih 600 stranica. U zbiru, na stranicama je otkriveno 1950 učitavanja WebAssembly modula, od kojih je 150 jedinstvenih. Prilikom razmatranja područja primjene WebAssembly napravljeni su porazni zaključci — u više od 50% slučajeva WebAssembly se koristio u zlonamjerne svrhe, primjerice za rudarenje kriptovaluta (55,7%) i skrivanje koda zlonamjernih skripti (0,2%). Od legitimnih primjena WebAssembly, ističu se izvršavanje biblioteka (38,8%), izrada igara (3,5%) i izvršavanje vlastitog koda napisanog ne na JavaScriptu (0,9%). U 14,9% slučajeva WebAssembly se koristio za analizu okruženja radi identifikacije korisnika (fingerprinting).

Prvo izdanje wasm3, brzog interpreter-a WebAssembly

Izvor: opennet.ru

Kupite pouzdan hosting za web stranice s DDoS zaštitom, VPS VDS servere 🔥 Kupite pouzdan hosting za web stranice s DDoS zaštitom, VPS VDS servere | ProHoster