Prvé vydanie wasm3, rýchleho tlmočníka WebAssembly

K dispozícii prvá edícia wasm3, veľmi rýchly interpreter kódu WebAssembly, primárne určený na spustenie aplikácií WebAssembly na mikrokontroléroch a platformách, ktoré nemajú implementáciu WebAssembly JIT, nemajú dostatok pamäte na spustenie JIT alebo nemôžu vytvárať stránky spustiteľnej pamäte potrebné na implementáciu JIT . Kód projektu je napísaný v jazyku C a distribuovaný pod licenciou MIT.

Wasm3 prechádza skúšky byť kompatibilný so špecifikáciou WebAssembly 1.0 a môže byť použitý na spustenie mnohých aplikácií WASI, pričom poskytuje výkon iba 4-5 krát nižší ako motory JIT (Liftoff, žeriavový výťah) a 11.5-krát nižšia ako spustenie natívneho kódu. V porovnaní s inými tlmočníkmi WebAssembly (WAC, život, wasm-micro-runtime), wasm3 bol 15.8-krát rýchlejší.

Wasm3 vyžaduje 64 Kb pamäte pre kód a 10 Kb RAM, čo vám umožňuje použiť projekt na spúšťanie aplikácií zostavených v WebAssembly na mikrokontroléry, ako napríklad 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, ako aj dosky a počítače založené na architektúrach x86, x64, ARM, MIPS, RISC-V a Xtensa. Podporované operačné systémy sú Linux (vrátane smerovačov založených na OpenWRT), Windows, macOS, Android a iOS. Je tiež možné skompilovať wasm3 do prechodného kódu WebAssembly na spustenie tlmočníka v prehliadači alebo na vnorené spustenie (self-hosting).

Vysoký výkon sa dosahuje použitím technológie v tlmočníkovi Massey Meta Machine (M3), ktorý preventívne prevádza bajtový kód na efektívnejšie operácie generovania pseudostrojového kódu, aby sa znížila réžia dekódovania bajtového kódu, a transformuje model vykonávania zásobníkového virtuálneho stroja na efektívnejší prístup k registrom. Operácie v M3 sú funkcie C, ktorých argumenty sú registre virtuálnych strojov, ktoré možno mapovať na registre CPU. Často sa vyskytujúce sekvencie operácií na optimalizáciu sa prevedú na súhrnné operácie.

Okrem toho je možné poznamenať výsledky výskumu rozširovanie, šírenie
WebAssembly na webe. Po analýze 948 tisíc najobľúbenejších stránok podľa hodnotenia Alexa vedci zistili, že WebAssembly sa používa na 1639 stránkach (0.17 %), t.j. na 1 zo 600 lokalít. Celkovo bolo na lokalitách zistených 1950 modulov WebAssembly, z toho 150 unikátnych. Pri zvažovaní rozsahu WebAssembly sa dospelo k neuspokojivým záverom - vo viac ako 50% prípadov bolo WebAssembly použité na škodlivé účely, napríklad na ťažbu kryptomien (55.7%) a skrytie kódu škodlivých skriptov (0.2%). Legitímne použitie WebAssembly zahŕňa spúšťanie knižníc (38.8 %), vytváranie hier (3.5 %) a spúšťanie natívneho kódu bez JavaScriptu (0.9 %). V 14.9 % prípadov bol WebAssembly použitý na analýzu prostredia na identifikáciu používateľa (snímanie odtlačkov prstov).

Prvé vydanie wasm3, rýchleho tlmočníka WebAssembly

Zdroj: opennet.ru

Pridať komentár