Unua eldono de wasm3, rapida WebAssembly interpretisto

Disponebla unua eldono wasm3, tre rapida WebAssembly meza kodinterpretisto ĉefe celita por uzo en prizorgado de WebAssembly-aplikoj sur mikroregiloj kaj platformoj kiuj ne havas JIT-efektivigon por WebAssembly, ne havas sufiĉe da memoro por prizorgi JIT, aŭ ne povas krei la ruleblajn memorpaĝojn necesajn por efektivigi JIT. . La projektkodo estas skribita en C kaj distribuita de sub la MIT-licenco.

Wasm3 pasas testoj kongrua kun la WebAssembly 1.0-specifo kaj povas esti uzata por ruli multajn WASI-aplikaĵojn, provizante efikecon nur 4-5 fojojn pli malaltan ol JIT-motoroj (ekveturo, gruolifto) kaj 11.5 fojojn pli malalta ol denaska koda ekzekuto. Kompare kun aliaj WebAssembly-interpretistoj (wac, vivo, wasm-mikro-runtime), wasm3 montriĝis 15.8 fojojn pli rapida.

Por ruli wasm3, vi bezonas 64Kb da kodmemoro kaj 10Kb da RAM, kio ebligas al vi uzi la projekton por ruli aplikaĵojn kompilitajn en WebAssembly sur mikroregiloj, kiel Arduino MKR*, Arduino Due, Particle Photon, ESP8266, ESP32, Air602 (W600), nRF52, nRF51 Blue Pill (STM32F103C8T6), MXChip AZ3166 (EMW3166),
Maix (K210), HiFive1 (E310), Fomu (ICE40UP5K) kaj ATmega1284, same kiel sur tabuloj kaj komputiloj bazitaj sur x86, x64, ARM, MIPS, RISC-V kaj Xtensa arkitekturoj. Subtenataj operaciumoj inkluzivas Linukso (inkluzive de enkursigiloj bazitaj sur OpenWRT), Vindozo, macOS, Android kaj iOS. Eblas ankaŭ kompili wasm3 en la mezan kodon de WebAssembly por ruli la interpretiston en la retumilo aŭ por nestita ekzekuto (mem-gastigado).

Alta rendimento estas atingita per la uzo de teknologio en la interpretisto Massey Meta Maŝino (M3), kiu antaŭen-tradukas bajtokodon en pli efikajn pseŭd-maŝinajn kod-produktadoperaciojn por redukti bajtokodan malkodan superkoston, kaj konvertas la stak-bazitan virtualan maŝinan ekzekutmodelon al pli efika registro-bazita aliro. Operacioj en M3 estas C-funkcioj kies argumentoj estas virtualaj maŝinregistroj kiuj povas esti mapitaj al CPU-registroj. Ofte okazantaj sekvencoj de optimumigaj operacioj estas konvertitaj en resumajn operaciojn.

Aldone, ĝi povas esti notita esplorrezultoj disvastigado
WebAssembly en la Reto. Post analizo de 948 mil el la plej popularaj retejoj laŭ Alexa-taksoj, esploristoj trovis, ke WebAssembly estas uzata sur 1639 0.17 retejoj (1%), t.e. sur 600 el ĉiu 1950 retejoj. Entute, 150 WebAssembly-moduloj estis elŝutitaj sur la retejoj, el kiuj 50 estis unikaj. Konsiderante la amplekson de uzo de WebAssembly, seniluziigaj konkludoj estis faritaj - en pli ol 55.7% de kazoj, WebAssembly estis uzata por malicaj celoj, ekzemple por minado de kripta monero (0.2%) kaj kaŝi la kodon de malicaj skriptoj (38.8%). . Laŭleĝaj uzoj de WebAssembly inkludas prizorgi bibliotekojn (3.5%), krei ludojn (0.9%), kaj ruli kutiman ne-JavaScript-kodon (14.9%). En XNUMX% de kazoj, WebAssembly estis uzita por analizi la medion por uzantidentigo (fingrospurado).

Unua eldono de wasm3, rapida WebAssembly interpretisto

fonto: opennet.ru

Aldoni komenton