Første utgivelse av wasm3, en rask WebAssembly-tolk

Tilgjengelig første utgave wasm3, en veldig rask WebAssembly mellomkodetolk primært beregnet for bruk til å kjøre WebAssembly-applikasjoner på mikrokontrollere og plattformer som ikke har en JIT-implementering for WebAssembly, som ikke har nok minne til å kjøre JIT, eller som ikke kan lage de kjørbare minnesidene som trengs for å implementere JIT . Prosjektkoden er skrevet i C og distribuert av under MIT-lisensen.

Wasm3 passerer tester kompatibel med WebAssembly 1.0-spesifikasjonen og kan brukes til å kjøre mange WASI-applikasjoner, og gir ytelse kun 4-5 ganger lavere enn JIT-motorer (ta av, kranløft) og 11.5 ganger lavere enn kjøring av opprinnelig kode. Sammenlignet med andre WebAssembly-tolker (wac, liv, wasm-micro-runtime), viste wasm3 seg å være 15.8 ganger raskere.

For å kjøre wasm3 trenger du 64Kb kodeminne og 10Kb RAM, som lar deg bruke prosjektet til å kjøre applikasjoner kompilert i WebAssembly på mikrokontrollere, slik som Arduino MKR*, Arduino Due, Particle Photon, ESP8266, ESP32, Air602 (W600), nRF52, nRF51 Blue Pill (STM32F103C8T6), MXChip AZ3166 (EMW3166),
Maix (K210), HiFive1 (E310), Fomu (ICE40UP5K) og ATmega1284, samt på brett og datamaskiner basert på x86, x64, ARM, MIPS, RISC-V og Xtensa arkitekturer. Operativsystemer som støttes inkluderer Linux (inkludert rutere basert på OpenWRT), Windows, macOS, Android og iOS. Det er også mulig å kompilere wasm3 til WebAssembly mellomkode for å kjøre tolken i nettleseren eller for nestet utførelse (selvhosting).

Høy ytelse oppnås gjennom bruk av teknologi i tolken Massey Meta Machine (M3), som videreoversetter bytekode til mer effektive pseudomaskinkodegenererende operasjoner for å redusere bytekodedekodingsoverhead, og konverterer den stackbaserte virtuelle maskinutførelsesmodellen til en mer effektiv registerbasert tilnærming. Operasjoner i M3 er C-funksjoner hvis argumenter er virtuelle maskinregistre som kan tilordnes CPU-registre. Ofte forekommende sekvenser av optimaliseringsoperasjoner konverteres til oppsummeringsoperasjoner.

I tillegg kan det bemerkes forskningsresultater spredning
WebAssembly på nettet. Etter å ha analysert 948 tusen av de mest populære nettstedene i henhold til Alexa-rangeringer, fant forskere at WebAssembly brukes på 1639 0.17 nettsteder (1%), dvs. på 600 av 1950 nettsteder. Totalt ble 150 WebAssembly-moduler lastet ned på sidene, hvorav 50 var unike. Når man vurderer omfanget av bruken av WebAssembly, ble det gjort skuffende konklusjoner - i mer enn 55.7 % av tilfellene ble WebAssembly brukt til ondsinnede formål, for eksempel for å utvinne kryptovaluta (0.2 %) og skjule koden til ondsinnede skript (38.8 %) . Legitim bruk av WebAssembly inkluderer kjørende biblioteker (3.5 %), å lage spill (0.9 %) og kjøre tilpasset ikke-JavaScript-kode (14.9 %). I XNUMX % av tilfellene ble WebAssembly brukt til å analysere miljøet for brukeridentifikasjon (fingeravtrykk).

Første utgivelse av wasm3, en rask WebAssembly-tolk

Kilde: opennet.ru

Legg til en kommentar