Unang pagpagawas sa wasm3, usa ka paspas nga tighubad sa WebAssembly

Magamit unang edisyon wasm3, usa ka paspas kaayo nga WebAssembly intermediate code interpreter nga gituyo aron gamiton sa pagpadagan sa mga aplikasyon sa WebAssembly sa mga microcontroller ug mga platform nga walay JIT nga implementasyon para sa WebAssembly, walay igong memorya sa pagpadagan sa JIT, o dili makahimo sa executable memory page nga gikinahanglan sa pagpatuman sa JIT . Ang code sa proyekto gisulat sa C ug giapod-apod sa ubos sa lisensya sa MIT.

Wasm3 pasado mga pagsulay compatible sa WebAssembly 1.0 specification ug mahimong magamit sa pagpadagan sa daghang mga aplikasyon sa WASI, nga naghatag og performance nga 4-5 ka beses nga mas ubos kaysa JIT nga mga makina (pagbayaw, cranelift) ug 11.5 ka beses nga mas ubos kay sa pagpatuman sa lumad nga code. Kung itandi sa ubang mga tighubad sa WebAssembly (wAC, kinabuhi, wasm-micro-runtime), ang wasm3 nahimong 15.8 ka beses nga mas paspas.

Aron makadagan ang wasm3, kinahanglan nimo ang 64Kb nga panumduman sa code ug 10Kb nga RAM, nga nagtugot kanimo nga magamit ang proyekto sa pagpadagan sa mga aplikasyon nga giipon sa WebAssembly sa mga microcontroller, sama sa Arduino MKR*, Arduino Due, Particle Photon, ESP8266, ESP32, Air602 (W600), nRF52, nRF51 Blue Pill (STM32F103C8T6), MXChip AZ3166 (EMW3166),
Maix (K210), HiFive1 (E310), Fomu (ICE40UP5K) ug ATmega1284, ingon man sa mga board ug kompyuter nga gibase sa x86, x64, ARM, MIPS, RISC-V ug Xtensa nga mga arkitektura. Ang mga operating system nga gisuportahan naglakip sa Linux (lakip ang mga router base sa OpenWRT), Windows, macOS, Android ug iOS. Posible usab ang pag-compile sa wasm3 ngadto sa WebAssembly intermediate code aron ipadagan ang interpreter sa browser o para sa nested execution (self-hosting).

Ang taas nga pasundayag makab-ot pinaagi sa paggamit sa teknolohiya sa tighubad Massey Meta Machine (M3), nga nag-forward-translate sa bytecode ngadto sa mas episyente nga pseudo-machine code-generating operations aron makunhuran ang bytecode decoding overhead, ug i-convert ang stack-based virtual machine execution model ngadto sa mas episyente nga register-based nga pamaagi. Ang mga operasyon sa M3 mao ang mga gimbuhaton sa C kansang mga argumento mao ang mga rehistro sa virtual machine nga mahimong mapa sa mga rehistro sa CPU. Ang kanunay nga nahitabo nga mga han-ay sa mga operasyon sa pag-optimize gihimo nga mga operasyon sa katingbanan.

Dugang pa, kini mahimong matikdan mga sangputanan sa panukiduki pagsabwag
WebAssembly sa Web. Human sa pag-analisar sa 948 ka libo sa labing popular nga mga site sumala sa Alexa ratings, tigdukiduki nakakaplag nga WebAssembly gigamit sa 1639 sites (0.17%), i.e. sa 1 sa matag 600 ka site. Sa kinatibuk-an, 1950 nga mga module sa WebAssembly ang na-download sa mga site, diin 150 ang talagsaon. Kung gikonsiderar ang kasangkaran sa paggamit sa WebAssembly, ang makapahigawad nga mga konklusyon gihimo - sa labaw pa sa 50% sa mga kaso, ang WebAssembly gigamit alang sa malisyosong katuyoan, pananglitan, alang sa pagmina sa cryptocurrency (55.7%) ug gitago ang code sa mga malisyoso nga script (0.2%). . Ang mga lehitimong paggamit sa WebAssembly naglakip sa pagpadagan sa mga librarya (38.8%), paghimo og mga dula (3.5%), ug pagpadagan sa custom nga non-JavaScript code (0.9%). Sa 14.9% sa mga kaso, ang WebAssembly gigamit sa pag-analisar sa palibot alang sa pag-ila sa user (fingerprinting).

Unang pagpagawas sa wasm3, usa ka paspas nga tighubad sa WebAssembly

Source: opennet.ru

Idugang sa usa ka comment