A wasm3 első kiadása, egy gyors WebAssembly értelmező

Elérhető első kiadás wasm3, egy nagyon gyors WebAssembly közbenső kódértelmező, amely elsősorban WebAssembly alkalmazások futtatására szolgál olyan mikrokontrollereken és platformokon, amelyek nem rendelkeznek WebAssembly JIT implementációval, nem rendelkeznek elegendő memóriával a JIT működéséhez, vagy nem tudnak a JIT megvalósításához szükséges futtatható memórialapokat létrehozni. . A projekt kódja C nyelven és forgalmazza az MIT engedélye alapján.

A Wasm3 átmegy tesztek hogy kompatibilis legyen a WebAssembly 1.0 specifikációval, és számos WASI-alkalmazás futtatására használható, és csak 4-5-ször alacsonyabb teljesítményt biztosít, mint a JIT motorok (felszállás, daru emelő) és 11.5-szer alacsonyabb, mint a natív kód végrehajtása. Összehasonlítva más WebAssembly értelmezőkkel (WAC, élet, wasm-micro-runtime), a wasm3 15.8-szor gyorsabb volt.

A Wasm3 64 Kb memóriát igényel a kódhoz és 10 Kb RAM-ot, ami lehetővé teszi, hogy a projektet WebAssembly-ben fordított alkalmazások futtatására használja. mikrokontrollerek, például Arduino MKR*, Arduino Due, Particle Photon, ESP8266, ESP32, Air602 (W600), nRF52, nRF51 Blue Pill (STM32F103C8T6), MXChip AZ3166 (EMW3166),
Maix (K210), HiFive1 (E310), Fomu (ICE40UP5K) és ATmega1284, valamint x86, x64, ARM, MIPS, RISC-V és Xtensa architektúrákon alapuló kártyák és számítógépek. A támogatott operációs rendszerek a Linux (beleértve az OpenWRT-alapú útválasztókat), a Windows, a macOS, az Android és az iOS. Lehetőség van arra is, hogy a wasm3-at egy közbenső WebAssembly kódba fordítsuk az interpreter böngészőben történő végrehajtásához vagy beágyazott indításhoz (saját hosztolás).

A nagy teljesítmény a tolmács technológiájának használatával érhető el Massey Meta gép (M3), amely megelőzően lefordítja a bájtkódot hatékonyabb pszeudogépi kódgeneráló műveletekké, hogy csökkentse a bájtkód dekódolás többletterhelését, és a verem virtuális gép végrehajtási modelljét hatékonyabb regiszteres megközelítéssé alakítja át. Az M3 műveletei olyan C függvények, amelyek argumentumai virtuálisgép-regiszterek, amelyek leképezhetők CPU-regiszterekre. Az optimalizáláshoz gyakran előforduló műveletsorok összegző műveletekké alakulnak.

Ezenkívül meg lehet jegyezni kutatási eredmények elterjesztés
WebAssembly a weben. A 948 ezer legnépszerűbb oldal Alexa minősítés szerinti elemzése után a kutatók rájöttek, hogy a WebAssemblyt 1639 oldalon (0.17%) használják, i.e. 1 webhelyből 600-en. Összesen 1950 WebAssembly modult észleltek az oldalakon, ebből 150 egyedi. A WebAssembly hatókörének mérlegelésekor kiábrándító következtetések születtek - az esetek több mint 50% -ában rosszindulatú célokra használták a WebAssembly-t, például kriptovaluta bányászathoz (55.7%) és rosszindulatú szkriptek kódjának elrejtéséhez (0.2%). A WebAssembly törvényes felhasználási módjai közé tartozik a könyvtárak végrehajtása (38.8%), a játékok létrehozása (3.5%) és a natív, nem JavaScript kód végrehajtása (0.9%). Az esetek 14.9%-ában a WebAssembly segítségével elemezték a környezetet a felhasználó azonosítására (ujjlenyomat).

A wasm3 első kiadása, egy gyors WebAssembly értelmező

Forrás: opennet.ru

Hozzászólás