Wasm3-ren lehen bertsioa, WebAssembly interprete azkarra

Eskuragarri lehen edizioa wasm3, WebAssembly tarteko kode-interpretatzaile oso azkarra, batez ere, WebAssembly aplikazioak exekutatzeko mikrokontrolagailuetan eta WebAssemblyrako JIT inplementaziorik ez duten plataformetan erabiltzeko, ez dute JIT exekutatzeko memoria nahikorik edo JIT ezartzeko behar diren memoria-orri exekutagarriak sortu ezin dituztenak. . Proiektuaren kodea C eta idatzita dago arabera banatuta MIT lizentziapean.

Wasm3 pasatzen du probak WebAssembly 1.0 zehaztapenarekin bateragarria eta WASI aplikazio asko exekutatzeko erabil daiteke, JIT motorrak baino 4-5 aldiz errendimendua baino txikiagoa eskainiz (altxa, garabi-jasotzailea) eta jatorrizko kodearen exekuzioa baino 11.5 aldiz txikiagoa. WebAssembly beste interprete batzuekin alderatuta (WAC, bizitza, wasm-micro-runtime), wasm3 15.8 aldiz azkarragoa izan da.

Wasm3 exekutatzeko, 64Kb kode memoria eta 10Kb RAM behar dituzu, eta horrek proiektua WebAssembly-n konpilatutako aplikazioak exekutatzeko erabil dezakezu. mikrokontrolagailuak, hala nola, Arduino MKR*, Arduino Due, Particle Photon, ESP8266, ESP32, Air602 (W600), nRF52, nRF51 Blue Pill (STM32F103C8T6), MXChip AZ3166 (EMW3166),
Maix (K210), HiFive1 (E310), Fomu (ICE40UP5K) eta ATmega1284, baita x86, x64, ARM, MIPS, RISC-V eta Xtensa arkitektuetan oinarritutako plaka eta ordenagailuetan ere. Onartzen diren sistema eragileak Linux (OpenWRTn oinarritutako bideratzaileak barne), Windows, macOS, Android eta iOS dira. Era berean, posible da wasm3 WebAssembly bitarteko kodean konpilatzea interpretea arakatzailean exekutatzeko edo habiaratuta exekutatzeko (auto-ostalaritza).

Errendimendu handia interpretatzailean teknologiaren erabileraren bidez lortzen da Massey Meta Machine (M3), bytecode-ak aurrera itzultzen dituen sasi-makina kodea sortzeko eragiketa eraginkorragoak bihurtzeko bytecode deskodetzearen gainkostua murrizteko, eta pilan oinarritutako makina birtualeko exekuzio eredua erregistroan oinarritutako ikuspegi eraginkorrago batera bihurtzen du. M3-ko eragiketak C funtzioak dira, zeinen argumentuak PUZaren erregistroetara mapa daitezkeen makina birtualeko erregistroak dira. Maiz gertatzen diren optimizazio-eragiketen sekuentziak laburpen-eragiketetan bihurtzen dira.

Gainera, nabarmendu daiteke ikerketaren emaitzak zabalkundea
WebAssembly sarean. Alexa balorazioen arabera ezagunenetako 948 mila gune aztertu ostean, WebAssembly 1639 gunetan (%0.17) erabiltzen dela ikusi dute ikertzaileek, hau da. 1 gunetik 600ean. Guztira, 1950 WebAssembly modulu deskargatu ziren guneetan, eta horietatik 150 bakarrak ziren. WebAssembly-ren erabilera-esparrua kontuan hartuta, ondorio etsigarriak atera ziren - kasuen % 50 baino gehiagotan, WebAssembly helburu maltzurrekin erabili zen, adibidez, kripto-moneta meatzaritza (% 55.7) eta script maltzurren kodea ezkutatzeko (% 0.2). . WebAssembly-ren erabilera legitimoen artean liburutegiak martxan jartzea (% 38.8), jokoak sortzea (% 3.5) eta JavaScript ez den kode pertsonalizatua (% 0.9) exekutatzen dira. Kasuen %14.9an, WebAssembly erabili zen ingurunea aztertzeko erabiltzaileak identifikatzeko (hatz-markak).

Wasm3-ren lehen bertsioa, WebAssembly interprete azkarra

Iturria: opennet.ru

Gehitu iruzkin berria