wasm3, një interpretues i WebAssemble lëshon versionin e tij të parë

W3

Kohët e fundit, u lëshua versioni i parë i wasm3, e cila është një përkthyes shumë i shpejtë i kodit të ndërmjetëm nga WebAssembleMeqenëse është krijuar kryesisht për të ekzekutuar aplikacione WebAssemble në mikrokontrollues dhe platforma për të cilat nuk ka implementim të JIT për WebAssemble, nuk ka memorie të mjaftueshme për të funksionuar JIT, ose krijimin e faqeve të ekzekutueshme të kujtesës të kërkuara për Implementimin e JIT.

Për ata që nuk e njohin WebAssemble, duhet ta dini se kjo është një gjuhë e nivelit të ulët, fillimisht u krijua si një format i synuar kur përpilohet nga C dhe C ++, megjithëse mbështet gjithashtu kodin burimor për gjuhë të tjera, të tilla si Rust dhe Go. Ky format i kodit binar portativ përdoret për ekzekutimin e plotë të skenareve nga shfletuesi nga ana e klientit.

Rreth wasm3

Wasm3 kalon provat e pajtueshmërisë me specifikimin WebAssemble 1.0 dhe mund të përdoret për të ekzekutuar shumë aplikacione WASI, duke siguruar vetëm 4-5 herë më pak performancë sesa motorët JIT dhe 11.5 herë më pak se ekzekutimi i kodit vendas.

Krahasuar me interpretuesit e tjerë nga WebAssemble (wac, life, wasm-micro-runtime), wasm3 ishte 15.8 herë më i shpejtë.

Wasm3 filloi si një projekt kërkimor dhe vazhdon të jetë i tillë me shumë mënyra. Vlerësimi i motorit në mjedise të ndryshme është pjesë e hetimit. Meqenëse kemi Lua, JS, Python, Lisp, (…) që funksionojnë në MCU, WebAssemble është në të vërtetë një alternativë premtuese. Ai siguron një mjedis plotësisht të izoluar, të përcaktuar mirë dhe të parashikueshëm. Ndër rastet e përdorimit praktik, ne mund të rendisim informatikën më të përparuar, skriptimin, ekzekutimin e rregullit të IoT, kontratat e bllokut, etj.

wasm3 kërkon 64Kb memorie për kodin dhe 10Kb RAM, cfare ti lejon përdorimin e projektit për të ekzekutuar aplikacione të përpiluara në WebAssemble në mikrokontrollues si Arduino MKR *, Arduino Due, Parton Photon, ESP8266, ESP32, Air602 (W600), nRF52, nRF51 Tablet blu (STM32F103C8T6), MXChip AZ3166 (EMW3166), Maix (K210), HiFive1 (E310) E40 (E5) E1284 (XNUMX) EXNUMX (XNUMX) EXNUMX (XNUMX) , si dhe në borde dhe kompjutera të bazuar në arkitekturë x86, x64, ARM, MIPS, RISC-V dhe Xtens.

Performanca e lartë arrihet duke përdorur teknikën Massey Meta Machine (M3) në përkthyes, në të cilin, për të zvogëluar pjesën e sipërme të dekodimit të bytecode, bytekodi është përkthyer në mënyrë proaktive në operacione më efikase që gjenerojnë kodin pseudo-makineri dhe modeli i ekzekutimit të makinës virtuale të bërë pirje bëhet një regjistër më efikas i afrimit operacionet në M3 janë funksionet C, argumentet e të cilave janë regjistrat e makinës virtuale, të cilat mund të pasqyrohen në regjistrat e NJMF-së.

Rrjedhat e shpeshta të punës për optimizim kthehen në operacione përmbledhëse.

Përveç kësaj, Rezultatet e studimit mund të vërehen në WebAssemble në Web, pasi analizuan 948 mijë nga faqet më të njohura të vlerësuara nga Alexa, studiuesit zbuluan se WebAssemble përdoret nga 1639 site (0.17%), domethënë 1 në 600 site.

Në total, faqet e internetit zbuluan ngarkesën e 1950 moduleve WebAssemble, nga të cilat 150 janë unike.

Kur merret parasysh qëllimi i WebAssemble, u nxorën përfundime zhgënjyese: në më shumë se 50% të rasteve, WebAssemble u përdor për qëllime dashakeqe, për shembull, për të minuar kriptovalutat (55,7%) dhe për të fshehur kodin nga skriptet me qëllim të keq (0,2 , XNUMX%).

Të sistemeve operative të mbështetura për Wasm3, ne mund të gjejmë Linux përfshirë rrugëzuesit e bazuar në OpenWRT, Windows, macOS, Android dhe iOS. Ishte gjithashtu e mundur që të përpilohej wasm3 në kodin e ndërmjetëm WebAssemble për të ekzekutuar përkthyesin në një shfletues ose për vetë-hostim.

Nga përdorimet legjitime të WebAssemble, u vunë re ekzekutimi i bibliotekës (38.8%), krijimi i lojërave (3.5%) dhe ekzekutimi i kodit vendas jo-JavaScript (0.9%). Në 14,9% të rasteve, WebAssemble është përdorur për të analizuar mjedisin për identifikimin e përdoruesit (gjurmët e gishtave).

Provo wasm3

Për ata që janë të interesuar të jenë në gjendje të përdorin këtë përkthyes në sistemin e tyre, mund të konsultohet me dokumentacionin si dhe kodin e projektit e cila është shkruar në C dhe shpërndarë nën licencën MIT, Në lidhjen vijuese.


Lini komentin tuaj

Adresa juaj e emailit nuk do të publikohet. Fusha e kërkuar janë shënuar me *

*

*

  1. Përgjegjës për të dhënat: Miguel Ángel Gatón
  2. Qëllimi i të dhënave: Kontrolloni SPAM, menaxhimin e komenteve.
  3. Legjitimimi: Pëlqimi juaj
  4. Komunikimi i të dhënave: Të dhënat nuk do t'u komunikohen palëve të treta përveç me detyrim ligjor.
  5. Ruajtja e të dhënave: Baza e të dhënave e organizuar nga Occentus Networks (BE)
  6. Të drejtat: Në çdo kohë mund të kufizoni, rikuperoni dhe fshini informacionin tuaj.