Första utgåvan av wasm3, en snabb WebAssembly-tolk

Tillgängliga första upplagan wasm3, en mycket snabb WebAssembly mellankodtolkare främst avsedd att användas för att köra WebAssembly-applikationer på mikrokontroller och plattformar som inte har en JIT-implementering för WebAssembly, inte har tillräckligt med minne för att köra JIT eller inte kan skapa de körbara minnessidor som behövs för att implementera JIT . Projektkoden är skriven i C och levererad av under MIT-licensen.

Wasm3 passerar tester kompatibel med WebAssembly 1.0-specifikationen och kan användas för att köra många WASI-applikationer, ger prestanda endast 4-5 gånger lägre än JIT-motorer (lyft, kranlyft) och 11.5 gånger lägre än exekvering av inbyggd kod. Jämfört med andra WebAssembly-tolkar (vaken, liv, wasm-micro-runtime), visade sig wasm3 vara 15.8 gånger snabbare.

För att köra wasm3 behöver du 64Kb kodminne och 10Kb RAM, vilket gör att du kan använda projektet för att köra applikationer kompilerade i WebAssembly på mikrokontroller, 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) och ATmega1284, samt på kort och datorer baserade på x86, x64, ARM, MIPS, RISC-V och Xtensa arkitekturer. Operativsystem som stöds inkluderar Linux (inklusive routrar baserade på OpenWRT), Windows, macOS, Android och iOS. Det är också möjligt att kompilera wasm3 till WebAssembly-mellankod för att köra tolken i webbläsaren eller för kapslad körning (självvärd).

Hög prestanda uppnås genom användning av teknik i tolken Massey Meta Machine (M3), som framåtöversätter bytekod till mer effektiva pseudomaskinkodgenererande operationer för att minska bytekodavkodningsoverhead, och omvandlar den stackbaserade modellen för virtuell maskinexekvering till en mer effektiv registerbaserad metod. Operationer i M3 är C-funktioner vars argument är virtuella maskinregister som kan mappas till CPU-register. Ofta förekommande sekvenser av optimeringsoperationer omvandlas till sammanfattningsoperationer.

Dessutom kan det noteras forskningsresultat distribution
WebAssembly på webben. Efter att ha analyserat 948 tusen av de mest populära sajterna enligt Alexa-betyg, fann forskare att WebAssembly används på 1639 0.17 sajter (1%), d.v.s. på 600 av 1950 webbplatser. Totalt laddades 150 WebAssembly-moduler ner på sajterna, varav 50 var unika. När man övervägde omfattningen av användningen av WebAssembly drogs nedslående slutsatser - i mer än 55.7 % av fallen användes WebAssembly för skadliga syften, till exempel för att utvinna kryptovaluta (0.2 %) och dölja koden för skadliga skript (38.8 %) . Legitima användningar av WebAssembly inkluderar körande bibliotek (3.5 %), skapande av spel (0.9 %) och körning av anpassad kod utan JavaScript (14.9 %). I XNUMX % av fallen användes WebAssembly för att analysera miljön för användaridentifiering (fingeravtryck).

Första utgåvan av wasm3, en snabb WebAssembly-tolk

Källa: opennet.ru

Lägg en kommentar