Prvo izdanje wasm3, brzog WebAssembly tumača

Dostupno prvo izdanje wasm3, vrlo brz WebAssembly posredni interpreter koda prvenstveno namijenjen za korištenje u pokretanju WebAssembly aplikacija na mikrokontrolerima i platformama koje nemaju JIT implementaciju za WebAssembly, nemaju dovoljno memorije za pokretanje JIT-a ili ne mogu stvoriti izvršne memorijske stranice potrebne za implementaciju JIT-a . Kod projekta je napisan u C i distribuira pod licencom MIT-a.

Wasm3 prolazi testovi kompatibilan sa specifikacijom WebAssembly 1.0 i može se koristiti za pokretanje mnogih WASI aplikacija, pružajući performanse samo 4-5 puta niže od JIT motora (polijetanje, dizalica) i 11.5 puta niže od izvršavanja izvornog koda. U usporedbi s drugim tumačima WebAssembly (wac, život, wasm-mikro-vrijeme izvođenja), pokazalo se da je wasm3 15.8 puta brži.

Za pokretanje wasm3 potrebno vam je 64 Kb memorije koda i 10 Kb RAM-a, što vam omogućuje korištenje projekta za pokretanje aplikacija kompajliranih u WebAssembly na mikrokontroleri, 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čunalima baziranim na x86, x64, ARM, MIPS, RISC-V i Xtensa arhitekturama. Podržani operativni sustavi uključuju Linux (uključujući usmjerivače temeljene na OpenWRT), Windows, macOS, Android i iOS. Također je moguće prevesti wasm3 u međukod WebAssembly za pokretanje tumača u pregledniku ili za ugniježđeno izvršavanje (samostalno hostiranje).

Visoke performanse postižu se upotrebom tehnologije u prevoditelju Massey Meta stroj (M3), koji unaprijed prevodi bajt-kod u učinkovitije operacije generiranja pseudo-strojnog koda kako bi se smanjilo opterećenje dekodiranja bajt-koda i pretvara model izvršavanja virtualnog stroja temeljen na stogu u učinkovitiji pristup temeljen na registrima. Operacije u M3 su C funkcije čiji su argumenti registri virtualnog stroja koji se mogu mapirati u CPU registre. Redovi operacija optimizacije koji se često pojavljuju pretvaraju se u operacije sažetka.

Dodatno, možete napomenuti rezultati istraživanja šireći se
WebAssembly na webu. Nakon analize 948 tisuća najpopularnijih stranica prema Alexa ocjenama, istraživači su otkrili da se WebAssembly koristi na 1639 stranica (0.17%), tj. na 1 od svakih 600 stranica. Ukupno je na stranicama preuzeto 1950 WebAssembly modula, od kojih je 150 bilo jedinstveno. Kada se razmatra opseg korištenja WebAssemblyja, doneseni su razočaravajući zaključci - u više od 50% slučajeva WebAssembly je korišten u zlonamjerne svrhe, na primjer, za rudarenje kriptovalute (55.7%) i skrivanje koda zlonamjernih skripti (0.2%) . Legitimne upotrebe WebAssemblyja uključuju pokretanje biblioteka (38.8%), stvaranje igara (3.5%) i pokretanje prilagođenog koda koji nije JavaScript (0.9%). U 14.9% slučajeva WebAssembly je korišten za analizu okruženja za identifikaciju korisnika (fingerprinting).

Prvo izdanje wasm3, brzog WebAssembly tumača

Izvor: opennet.ru

Dodajte komentar