Wasm3:n ensimmäinen julkaisu, nopea WebAssembly-tulkki

Saatavilla ensimmäinen painos wasm3, erittäin nopea WebAssembly-välitason kooditulkki, joka on tarkoitettu ensisijaisesti käytettäväksi WebAssembly-sovellusten ajamiseen mikro-ohjaimilla ja alustoilla, joissa ei ole WebAssemblyn JIT-toteutusta, joissa ei ole tarpeeksi muistia JIT:n suorittamiseen tai jotka eivät pysty luomaan JIT:n toteuttamiseen tarvittavia suoritettavaa muistisivua. . Projektin koodi on kirjoitettu C- ja jakelija MIT-lisenssillä.

Wasm3 kulkee testit Yhteensopiva WebAssembly 1.0 -määrityksen kanssa ja sitä voidaan käyttää useiden WASI-sovellusten suorittamiseen, mikä tarjoaa vain 4-5 kertaa alhaisemman suorituskyvyn kuin JIT-moottorit (laukaisuun, nosturi) ja 11.5 kertaa alhaisempi kuin alkuperäisen koodin suoritus. Verrattuna muihin WebAssembly-tulkkeihin (wac, elämä, wasm-micro-runtime), wasm3 osoittautui 15.8 kertaa nopeammaksi.

Wasm3:n suorittamiseen tarvitset 64 kt koodimuistia ja 10 kt RAM-muistia, minkä ansiosta voit käyttää projektia WebAssemblyssa koottujen sovellusten suorittamiseen mikro-ohjaimet, kuten 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 sekä x86-, x64-, ARM-, MIPS-, RISC-V- ja Xtensa-arkkitehtuureihin perustuvissa levyissä ja tietokoneissa. Tuettuja käyttöjärjestelmiä ovat Linux (mukaan lukien OpenWRT-pohjaiset reitittimet), Windows, macOS, Android ja iOS. On myös mahdollista kääntää wasm3 WebAssembly-välikoodiksi tulkin suorittamiseksi selaimessa tai sisäkkäiseen suoritukseen (self-hosting).

Korkea suorituskyky saavutetaan käyttämällä tulkin teknologiaa Massey Meta Machine (M3), joka kääntää eteenpäin tavukoodin tehokkaammiksi näennäiskonekoodin luontitoiminnoiksi vähentääkseen tavukoodin dekoodauksen lisäkustannuksia ja muuntaa pinopohjaisen virtuaalikoneen suoritusmallin tehokkaammaksi rekisteripohjaiseksi lähestymistavaksi. M3:n toiminnot ovat C-funktioita, joiden argumentit ovat virtuaalikoneen rekistereitä, jotka voidaan yhdistää CPU-rekistereihin. Usein esiintyvät optimointioperaatioiden sekvenssit muunnetaan yhteenvetooperaatioiksi.

Lisäksi voidaan huomauttaa tutkimustuloksia leviäminen
WebAssembly verkossa. Analysoituaan 948 tuhatta suosituinta sivustoa Alexan luokituksen mukaan tutkijat havaitsivat, että WebAssemblya käytetään 1639 0.17 sivustolla (1 %), ts. yhdellä 600 sivustosta. Kaikkiaan sivustoille ladattiin 1950 WebAssembly-moduulia, joista 150 oli ainutlaatuisia. WebAssemblyn käyttöaluetta pohdittaessa tehtiin pettymys - yli 50 %:ssa tapauksista WebAssemblya käytettiin haitallisiin tarkoituksiin, esimerkiksi kryptovaluutan louhintaan (55.7 %) ja haitallisten komentosarjojen koodin piilottamiseen (0.2 %). . WebAssemblyn laillisia käyttötarkoituksia ovat kirjastojen ajaminen (38.8 %), pelien luominen (3.5 %) ja mukautetun ei-JavaScript-koodin käyttäminen (0.9 %). 14.9 %:ssa tapauksista WebAssemblya käytettiin analysoimaan ympäristöä käyttäjän tunnistamista (sormenjälkiä) varten.

Wasm3:n ensimmäinen julkaisu, nopea WebAssembly-tulkki

Lähde: opennet.ru

Lisää kommentti