Unang release ng wasm3, isang mabilis na interpreter ng WebAssembly

Magagamit unang edisyon wasm3, isang napakabilis na WebAssembly intermediate code interpreter na pangunahing inilaan para sa paggamit sa pagpapatakbo ng mga application ng WebAssembly sa mga microcontroller at platform na walang JIT na pagpapatupad para sa WebAssembly, walang sapat na memorya upang patakbuhin ang JIT, o hindi maaaring lumikha ng mga executable memory page na kailangan para ipatupad ang JIT . Ang code ng proyekto ay nakasulat sa C at ipinamahagi ni sa ilalim ng lisensya ng MIT.

Wasm3 pumasa mga pagsubok compatible sa WebAssembly 1.0 specification at maaaring gamitin para magpatakbo ng maraming WASI application, na nagbibigay ng performance na 4-5 beses na mas mababa kaysa sa JIT engine (pag-angat, cranelift) at 11.5 beses na mas mababa kaysa sa native code execution. Kung ihahambing sa iba pang mga interpreter ng WebAssembly (wac, buhay, wasm-micro-runtime), ang wasm3 ay naging 15.8 beses na mas mabilis.

Upang patakbuhin ang wasm3, kailangan mo ng 64Kb ng code memory at 10Kb ng RAM, na nagbibigay-daan sa iyong gamitin ang proyekto upang magpatakbo ng mga application na pinagsama-sama sa WebAssembly sa mga microcontroller, gaya ng Arduino MKR*, Arduino Due, Particle Photon, ESP8266, ESP32, Air602 (W600), nRF52, nRF51 Blue Pill (STM32F103C8T6), MXChip AZ3166 (EMW3166),
Maix (K210), HiFive1 (E310), Fomu (ICE40UP5K) at ATmega1284, pati na rin sa mga board at computer batay sa x86, x64, ARM, MIPS, RISC-V at Xtensa na mga arkitektura. Kasama sa mga sinusuportahang operating system ang Linux (kabilang ang mga router batay sa OpenWRT), Windows, macOS, Android at iOS. Posible ring i-compile ang wasm3 sa WebAssembly intermediate code upang patakbuhin ang interpreter sa browser o para sa nested execution (self-hosting).

Ang mataas na pagganap ay nakakamit sa pamamagitan ng paggamit ng teknolohiya sa interpreter Massey Meta Machine (M3), na nagpapasa-translate ng bytecode sa mas mahusay na pseudo-machine code-generating operations para bawasan ang bytecode decoding overhead, at kino-convert ang stack-based virtual machine execution model sa isang mas mahusay na register-based na diskarte. Ang mga operasyon sa M3 ay mga C function na ang mga argumento ay mga virtual machine registers na maaaring ma-map sa mga CPU register. Ang mga madalas na nagaganap na pagkakasunud-sunod ng mga pagpapatakbo ng pag-optimize ay kino-convert sa mga operasyon ng buod.

Bilang karagdagan, maaari mong tandaan mga resulta sa pananaliksik kumakalat
WebAssembly sa Web. Matapos suriin ang 948 sa mga pinakasikat na site ayon sa mga rating ng Alexa, natuklasan ng mga mananaliksik na ang WebAssembly ay ginagamit sa 1639 na site (0.17%), i.e. sa 1 sa bawat 600 na site. Sa kabuuan, 1950 WebAssembly module ang na-download sa mga site, kung saan 150 ang natatangi. Kung isasaalang-alang ang saklaw ng paggamit ng WebAssembly, ang mga nakakadismaya na konklusyon ay ginawa - sa higit sa 50% ng mga kaso, ang WebAssembly ay ginamit para sa mga malisyosong layunin, halimbawa, para sa pagmimina ng cryptocurrency (55.7%) at pagtatago ng code ng mga malisyosong script (0.2%) . Kasama sa mga lehitimong paggamit ng WebAssembly ang pagpapatakbo ng mga aklatan (38.8%), paggawa ng mga laro (3.5%), at pagpapatakbo ng custom na non-JavaScript code (0.9%). Sa 14.9% ng mga kaso, ginamit ang WebAssembly upang pag-aralan ang kapaligiran para sa pagkakakilanlan ng user (fingerprinting).

Unang release ng wasm3, isang mabilis na interpreter ng WebAssembly

Pinagmulan: opennet.ru

Magdagdag ng komento