První vydání wasm3, rychlého překladače WebAssembly

Dostupný první vydání wasm3, velmi rychlý zprostředkující interpret kódu WebAssembly primárně určený pro použití při spouštění aplikací WebAssembly na mikrokontrolérech a platformách, které nemají implementaci JIT pro WebAssembly, nemají dostatek paměti pro spuštění JIT nebo nemohou vytvořit stránky spustitelné paměti potřebné k implementaci JIT. . Kód projektu je napsán v jazyce C a distribuovány pod licencí MIT.

Wasm3 projde testy kompatibilní se specifikací WebAssembly 1.0 a lze jej použít ke spouštění mnoha aplikací WASI, přičemž poskytuje výkon pouze 4-5krát nižší než motory JIT (Liftoff, jeřábový výtah) a 11.5krát nižší než spouštění nativního kódu. Ve srovnání s jinými interprety WebAssembly (wac, život, wasm-micro-runtime), wasm3 se ukázal být 15.8krát rychlejší.

Ke spuštění wasm3 potřebujete 64 Kb paměti kódu a 10 Kb RAM, což vám umožní používat projekt ke spouštění aplikací zkompilovaných v WebAssembly na mikrokontroléry, jako je Arduino MKR*, Arduino Due, Particle Photon, ESP8266, ESP32, Air602 (W600), nRF52, nRF51 Blue Pill (STM32F103C8T6), MXChip AZ3166 (EMW3166),
Maix (K210), HiFive1 (E310), Fomu (ICE40UP5K) a ATmega1284, dále na deskách a počítačích založených na architekturách x86, x64, ARM, MIPS, RISC-V a Xtensa. Mezi podporované operační systémy patří Linux (včetně routerů založených na OpenWRT), Windows, macOS, Android a iOS. Je také možné zkompilovat wasm3 do mezikódu WebAssembly pro spuštění interpretu v prohlížeči nebo pro vnořené provádění (self-hosting).

Vysokého výkonu je dosaženo použitím technologie v tlumočníku Massey Meta Machine (M3), který dopředně převádí bajtkód do účinnějších operací generování kódu pseudostroje, aby se snížila režie dekódování bajtového kódu, a převádí model provádění virtuálního stroje na základě zásobníku na efektivnější přístup založený na registrech. Operace v M3 jsou funkce C, jejichž argumenty jsou registry virtuálních strojů, které lze mapovat na registry CPU. Často se vyskytující sekvence optimalizačních operací jsou převedeny na souhrnné operace.

Navíc lze poznamenat výsledky výzkumu šíření
WebAssembly na webu. Po analýze 948 tisíc nejoblíbenějších stránek podle hodnocení Alexa vědci zjistili, že WebAssembly se používá na 1639 0.17 stránkách (1 %), tzn. na 600 z každých 1950 webů. Celkem bylo na stránky staženo 150 modulů WebAssembly, z toho 50 unikátních. Při zvažování rozsahu použití WebAssembly byly učiněny neuspokojivé závěry - ve více než 55.7 % případů bylo WebAssembly použito pro škodlivé účely, například pro těžbu kryptoměny (0.2 %) a skrytí kódu škodlivých skriptů (38.8 %). . Legitimní použití WebAssembly zahrnuje spouštění knihoven (3.5 %), vytváření her (0.9 %) a spouštění vlastního kódu bez JavaScriptu (14.9 %). Ve XNUMX % případů bylo WebAssembly použito k analýze prostředí pro identifikaci uživatele (snímání otisků prstů).

První vydání wasm3, rychlého překladače WebAssembly

Zdroj: opennet.ru

Přidat komentář