Numri i parë i wasm3, një interpretor i shpejtë për WebAssembly

I disponueshëm botimi i parë wasm3, një interpretues shumë të shpejtë të kodit të ndërmjetëm WebAssembly, kryesisht i designed për të ekzekutuar aplikacione WebAssembly në mikrocontroller dhe platforma për të cilat nuk ka realizim JIT për WebAssembly, nuk ka mjaftueshëm memorie për të funksionuar JIT ose nuk lejohet krijimi i faqeve të ekzekutueshme të memories që janë të nevojshme për realizimin e JIT. Kodi i projektit është shkruar në gjuhën C dhe shpërndahet nën licencën MIT.

Wasm3 kalon testet për pajtueshmërinë me specifikimin WebAssembly 1.0 dhe mund të përdoret për të ekzekutuar shumë aplikacione WASI, duke ofruar një performancë vetëm 4-5 herë më të ulët se motorët JIT (liftoff, cranelift) dhe 11.5 herë më të ulët se ekzekutimi i kodit natyral. Kur krahasohet me interpretorët e tjerë të WebAssembly (wac, life, wasm-micro-runtime), wasm3 doli të jetë 15.8 herë më i shpejtë.

Për të funksionuar wasm3 kërkohen 64Kb memorie për kodin dhe 10Kb RAM, e cila lejon përdorimin e projektit për ekzekutimin e aplikacioneve të kompiluar në WebAssembly në mikrocontroller, si Arduino MKR*, Arduino Due, Particle Photon, ESP8266, ESP32, Air602 (W600), nRF52, nRF51 Blue Pill (STM32F103C8T6), MXChip AZ3166 (EMW3166),
Maix (K210), HiFive1 (E310), Fomu (ICE40UP5K) dhe ATmega1284, si dhe në bordet dhe kompjuterët që bazohen në arkitekturën x86, x64, ARM, MIPS, RISC-V dhe Xtensa. Sistemet operative të mbështetura përfshijnë Linux (përfshirë routerat që bazohen në OpenWRT), Windows, macOS, Android dhe iOS. Kompajlimi i wasm3 në kodin e ndërmjetëm WebAssembly për ekzekutimin e interpretorit në shfletues ose për ekzekutimin e brendshëm (self-hosting) është gjithashtu i mundur.

Performanca e lartë arrihet falë përdorimit të teknikës në interpretues Massey Meta Machine (M3), në të cilën për të reduktuar shpenzimet e dekodimit të kodit të byte, bëhet një përkthim paraprak i kodit të byte në operacione më efikase që gjenerojnë kodin pseudo-mashinar, dhe modeli i ekzekutimit të makinës virtuale me stekë shndërrohet në një qasje më efikase me regjistra. Operacionet në M3 përfaqësojnë funksione C, argumentet e të cilave janë regjistrat e makinës virtuale, të cilat mund të mapohen në regjistrat e CPU. Sekuencat e zakonshme të operacioneve për optimizim konvertohen në operacione të përmbledhura.

Gjithashtu mund të theksohet rezultatet e studimit të përhapjes
WebAssembly në Ueb. Pasi analizuan 948 mijë nga faqet më të njohura sipas renditjes Alexa, studiuesit zbuluan se WebAssembly përdoret në 1639 faqe (0.17%), që do të thotë 1 nga çdo 600 faqe. Në total, në këto faqe janë identifikuar 1950 module WebAssembly, prej të cilave 150 janë unike. Gjatë shqyrtimit të aplikimeve të WebAssembly, u arritën përfundime të pakëndshme - në mbi 50% të rasteve WebAssembly u përdor për qëllime të dëmshme, si për minimin e kriptovalutave (55.7%) dhe fshehjen e kodit të skripteve të dëmshme (0.2%). Nga aplikimet legjitime, WebAssembly u përdor për ekzekutimin e bibliotekave (38.8%), krijimin e lojërave (3.5%) dhe ekzekutimin e kodit të vet, i shkruar jo në JavaScript (0.9%). Në 14.9% të rasteve, WebAssembly u përdor për analizën e mjedisit për identifikimin e përdoruesit (fingerprinting).

Numri i parë i wasm3, një interpretor i shpejtë për WebAssembly

Burimi: opennet.ru

Blini hosting tĂ« besueshĂ«m pĂ«r faqe interneti me mbrojtje nga DDoS, serverĂ« VPS VDS đŸ”„ Blini hosting tĂ« besueshĂ«m pĂ«r faqe interneti me mbrojtje nga DDoS, serverĂ« VPS VDS | ProHoster