wasm3, isang interpreter ng WebAss Assembly ang naglalabas ng unang bersyon nito

W3

Kamakailan lamang ang unang bersyon ng wasm3 ay pinakawalan, na kung saan ay isang interpreter napakabilis ng intermediate code sa pamamagitan ng WebAss AssemblyPangunahin itong idinisenyo upang patakbuhin ang mga aplikasyon ng WebAss Assembly sa mga microcontroller at platform kung saan walang pagpapatupad ng JIT para sa WebAss Assembly, walang sapat na memorya para gumana ang JIT o ang paglikha ng mga naisasagawa na mga pahina ng memorya na kinakailangan para sa JIT Implementation.

Para sa mga hindi pamilyar sa WebAss Assembly, dapat mong malaman na ito ay isang mababang antas na wika, paunang idinisenyo bilang isang target na format kapag nag-iipon mula sa C at C ++, kahit na sinusuportahan din nito ang source code para sa iba pang mga wika, tulad ng Rust at Go. Ang portable na format na binary code na ito ay ginagamit para sa buong pagpapatupad ng mga script mula sa browser ng client-side.

Tungkol sa wasm3

Nagpasa ang Wasm3 ng mga pagsubok sa pagiging tugma kasama ang pagtutukoy ng WebAss Assembly 1.0 at maaaring magamit upang magpatakbo ng maraming mga application ng WASI, nagbibigay lamang ng 4-5 beses na mas mababa sa pagganap kaysa sa JIT engine at 11.5 beses na mas mababa kaysa sa pagpapatupad ng katutubong code.

Kung ikukumpara sa ibang mga tagapalabas mula sa WebAss Assembly (wac, buhay, wasm-micro-runtime), Ang wasm3 ay 15.8 beses na mas mabilis.

Nagsimula ang Wasm3 bilang isang proyekto sa pagsasaliksik at patuloy na napakaraming paraan. Ang pagsusuri ng motor sa iba't ibang mga kapaligiran ay bahagi ng pagsisiyasat. Dahil mayroon kaming Lua, JS, Python, Lisp, (...) na tumatakbo sa MCU, WebAss Assembly ay talagang isang maaasahan na kahalili. Nagbibigay ito ng isang ganap na nakahiwalay, mahusay na natukoy at mahuhulaan na kapaligiran. Kabilang sa mga praktikal na kaso ng paggamit, maaari naming ilista ang computing ng edge, scripting, IoT panuntunan sa pagpapatupad, mga kontrata ng blockchain, atbp.

wasm3 nangangailangan ng 64Kb ng memorya para sa code at 10Kb ng RAM, ano ka pinapayagan na gamitin ang proyekto upang patakbuhin ang naipong mga application sa WebAss Assembly sa mga microcontroller tulad ng Arduino MKR *, Arduino Dahil, Particle Photon, ESP8266, ESP32, Air602 (W600), nRF52, nRF51 Blue Pill (STM32F103C8T6), MXChip AZ3166 (EMW3166), Maix (K210), HiFive1 (E310), AT40ga5 , pati na rin sa mga board at computer batay sa mga arkitektura x86, x64, ARM, MIPS, RISC-V, at Xtens.

Nakamit ang mataas na pagganap sa pamamagitan ng paggamit ng diskarteng Massey Meta Machine (M3) sa interpreter, kung saan, upang mabawasan ang overhead ng pagde-decode ng bytecode, ang bytecode maagap na isinalin sa mas mahusay na mga pagpapatakbo na bumubuo ng pseudo-machine code at ang modelo ng pagpapatupad ng nakasalansan na virtual machine ay nagiging isang mas mahusay na diskarte sa rehistro ang mga pagpapatakbo sa M3 ay mga pagpapaandar ng C, na ang mga argumento ay ang mga rehistro ng virtual machine, na maaaring masasalamin sa mga rehistro ng CPU.

Ang mga madalas na daloy ng trabaho para sa pag-optimize ay ginawang mga buod na pagpapatakbo.

Bukod dito, Ang mga resulta ng pag-aaral ay maaaring sundin sa WebAss Assembly sa Web, pagkatapos na pag-aralan ang 948 libo ng pinakatanyag na mga site na na-rate ng Alexa, nalaman ng mga mananaliksik na Ang WebAss Assembly ay ginagamit ng 1639 mga site (0.17%), iyon ay 1 sa 600 na mga site.

Sa kabuuan, nagsiwalat ang mga website ng pag-load ng 1950 WebAss Assembly modules, kung saan 150 ang natatangi.

Kapag isinasaalang-alang ang saklaw ng WebAss Assembly, nakakabigo ang mga konklusyon: sa higit sa 50% ng mga kaso, ginamit ang WebAss Assembly para sa mga nakakahamak na layunin, halimbawa upang minain ang mga cryptocurrency (55,7%) at upang itago ang code mula sa mga nakakahamak na script (0,2 , XNUMX%).

Ng mga suportadong operating system para sa Wasm3, mahahanap natin ang Linux kabilang ang mga taga-router na batay sa OpenWRT, Windows, macOS, Android at iOS. Posible ring ipagsama ang wasm3 sa intermediate na code ng WebAss Assembly upang mapatakbo ang interpreter sa isang browser o para sa self-hosting.

Sa mga lehitimong paggamit ng WebAss Assembly, pagpapatupad ng library (38.8%), paggawa ng laro (3.5%), at hindi pagpapatupad ng katutubong code ng JavaScript (0.9%) ay naobserbahan. Sa 14,9% ng mga kaso, ginamit ang WebAss Assembly upang suriin ang kapaligiran para sa pagkakakilanlan ng gumagamit (mga fingerprint).

Subukan ang wasm3

Para sa mga interesadong magamit ang interpreter na ito sa kanilang system, maaaring kumunsulta sa dokumentasyon pati na rin ang code ng proyekto na nakasulat sa C at ibinahagi sa ilalim ng lisensya ng MIT, Sa sumusunod na link.


Iwanan ang iyong puna

Ang iyong email address ay hindi nai-publish. Mga kinakailangang patlang ay minarkahan ng *

*

*

  1. Responsable para sa data: Miguel Ángel Gatón
  2. Layunin ng data: Kontrolin ang SPAM, pamamahala ng komento.
  3. Legitimation: Ang iyong pahintulot
  4. Komunikasyon ng data: Ang data ay hindi maiparating sa mga third party maliban sa ligal na obligasyon.
  5. Imbakan ng data: Ang database na naka-host ng Occentus Networks (EU)
  6. Mga Karapatan: Sa anumang oras maaari mong limitahan, mabawi at tanggalin ang iyong impormasyon.