Wasm3, kiire WebAssembly tõlgi esimene väljalase

Saadaval esimene trükk wasm3, väga kiire WebAssembly vahepealne kooditõlk, mis on mõeldud peamiselt WebAssembly rakenduste käitamiseks mikrokontrolleritel ja platvormidel, millel ei ole WebAssembly JIT-i juurutamist, millel pole JIT-i tööks piisavalt mälu või mis ei suuda luua JIT-i juurutamiseks vajalikke käivitatavaid mälulehti. . Projekti kood on kirjutatud C-keeles ja jaotatud MIT litsentsi alusel.

Wasm3 läheb mööda testid olema ühilduv WebAssembly 1.0 spetsifikatsiooniga ja seda saab kasutada paljude WASI rakenduste käitamiseks, pakkudes JIT-mootoritest vaid 4–5 korda madalamat jõudlust (õhku tõusma, kraana tõstuk) ja 11.5 korda madalam kui algkoodi täitmine. Võrreldes teiste WebAssembly tõlgendajatega (wac, elu, wasm-micro-runtime), oli wasm3 15.8 korda kiirem.

Wasm3 vajab koodi jaoks 64Kb mälu ja 10Kb RAM-i, mis võimaldab teil projekti kasutada WebAssemblys kompileeritud rakenduste käitamiseks. mikrokontrollerid, nagu Arduino MKR*, Arduino Due, Particle Photon, ESP8266, ESP32, Air602 (W600), nRF52, nRF51 Blue Pill (STM32F103C8T6), MXChip AZ3166 (EMW3166),
Maix (K210), HiFive1 (E310), Fomu (ICE40UP5K) ja ATmega1284, samuti lauad ja arvutid, mis põhinevad x86, x64, ARM, MIPS, RISC-V ja Xtensa arhitektuuridel. Toetatud operatsioonisüsteemid on Linux (sh OpenWRT-põhised ruuterid), Windows, macOS, Android ja iOS. Samuti on võimalik koostada wasm3 WebAssembly vahepealseks koodiks, et käivitada tõlgi brauseris või pesastatud käivitamiseks (isehostimine).

Kõrge jõudlus saavutatakse tõlgi tehnoloogia kasutamisega Massey metamasin (M3), mis teisendab baitkoodi ennetavalt tõhusamateks pseudomasinkoodi genereerimistoiminguteks, et vähendada baitkoodi dekodeerimise üldkulusid, ja teisendab virna virtuaalmasina täitmismudeli tõhusamaks registripõhiseks lähenemisviisiks. M3 toimingud on C-funktsioonid, mille argumendid on virtuaalmasina registrid, mida saab vastendada CPU registritega. Sageli esinevad optimeerimistoimingute jadad teisendatakse kokkuvõtvateks toiminguteks.

Lisaks võib märkida uurimistulemused levib
WebAssembly veebis. Pärast Alexa reitingu järgi 948 tuhande populaarseima saidi analüüsimist leidsid teadlased, et WebAssemblyt kasutatakse 1639 saidil (0.17%), s.o. ühel saidil 1-st. Kokku tuvastati saitidel 600 WebAssembly moodulit, millest 1950 on ainulaadsed. WebAssembly ulatust kaaludes tehti pettumust valmistavad järeldused - enam kui 150% juhtudest kasutati WebAssemblyt pahatahtlikel eesmärkidel, näiteks krüptoraha kaevandamiseks (50%) ja pahatahtlike skriptide koodi varjamiseks (55.7%). WebAssembly legitiimsed kasutusalad hõlmavad teekide käivitamist (0.2%), mängude loomist (38.8%) ja natiivse mitte-JavaScripti koodi käivitamist (3.5%). 0.9% juhtudest kasutati WebAssemblyt keskkonna analüüsimiseks kasutaja tuvastamiseks (sõrmejälgede võtmiseks).

Wasm3, kiire WebAssembly tõlgi esimene väljalase

Allikas: opennet.ru

Lisa kommentaar