Første udgivelse af wasm3, en hurtig WebAssembly-fortolker

Ledig første udgave wasm3, en meget hurtig WebAssembly mellemkodefortolker primært beregnet til brug til at køre WebAssembly-applikationer på mikrocontrollere og platforme, der ikke har en JIT-implementering til WebAssembly, ikke har nok hukommelse til at køre JIT eller ikke kan oprette de eksekverbare hukommelsessider, der er nødvendige for at implementere JIT . Projektkoden er skrevet i C og distribueret af under MIT-licensen.

Wasm3 passerer test kompatibel med WebAssembly 1.0-specifikationen og kan bruges til at køre mange WASI-applikationer, hvilket kun giver ydeevne 4-5 gange lavere end JIT-motorer (ophævelse, kranløft) og 11.5 gange lavere end native kodeudførelse. Sammenlignet med andre WebAssembly-tolke (wac, liv, wasm-micro-runtime), viste wasm3 sig at være 15.8 gange hurtigere.

For at køre wasm3 skal du bruge 64Kb kodehukommelse og 10Kb RAM, hvilket giver dig mulighed for at bruge projektet til at køre applikationer kompileret i WebAssembly på mikrocontrollere, så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å boards og computere baseret på x86, x64, ARM, MIPS, RISC-V og Xtensa arkitekturer. Understøttede operativsystemer inkluderer Linux (inklusive routere baseret på OpenWRT), Windows, macOS, Android og iOS. Det er også muligt at kompilere wasm3 i WebAssembly-mellemkode for at køre fortolkeren i browseren eller til indlejret udførelse (selv-hosting).

Høj ydeevne opnås gennem brug af teknologi i tolken Massey Meta maskine (M3), som videreoversætter bytekode til mere effektive pseudomaskine-kodegenererende operationer for at reducere bytekodeafkodningsoverhead, og konverterer den stackbaserede virtuelle maskineksekveringsmodel til en mere effektiv registerbaseret tilgang. Operationer i M3 er C-funktioner, hvis argumenter er virtuelle maskinregistre, der kan tilknyttes CPU-registre. Hyppigt forekommende sekvenser af optimeringsoperationer konverteres til opsummeringsoperationer.

Derudover kan det bemærkes forskningsresultater formidling
WebAssembly på nettet. Efter at have analyseret 948 tusinde af de mest populære websteder i henhold til Alexa-vurderinger, fandt forskere ud af, at WebAssembly bruges på 1639 websteder (0.17%), dvs. på 1 ud af hver 600 websteder. I alt blev 1950 WebAssembly-moduler downloadet på siderne, hvoraf 150 var unikke. Når man overvejede anvendelsesomfanget af WebAssembly, blev der draget skuffende konklusioner - i mere end 50 % af tilfældene blev WebAssembly brugt til ondsindede formål, for eksempel til at udvinde cryptocurrency (55.7 %) og skjule koden for ondsindede scripts (0.2 %) . Legitim brug af WebAssembly omfatter kørende biblioteker (38.8 %), oprettelse af spil (3.5 %) og kørsel af tilpasset ikke-JavaScript-kode (0.9 %). I 14.9 % af tilfældene blev WebAssembly brugt til at analysere miljøet for brugeridentifikation (fingeraftryk).

Første udgivelse af wasm3, en hurtig WebAssembly-fortolker

Kilde: opennet.ru

Tilføj en kommentar