L-ewwel rilaxx ta' wasm3, interpretu veloċi tal-WebAssembly

Disponibbli l-ewwel edizzjoni wasm3, interpretu tal-kodiċi intermedju tal-WebAssembly veloċi ħafna primarjament maħsub għall-użu fit-tmexxija tal-applikazzjonijiet tal-WebAssembly fuq mikrokontrolluri u pjattaformi li m'għandhomx implimentazzjoni JIT għal WebAssembly, m'għandhomx memorja biżżejjed biex imexxu JIT, jew ma jistgħux joħolqu l-paġni tal-memorja eżekutibbli meħtieġa biex jimplimentaw JIT . Il-kodiċi tal-proġett huwa miktub f'Ċ u imqassma minn taħt il-liċenzja MIT.

Wasm3 jgħaddi testijiet kompatibbli mal-ispeċifikazzjoni tal-WebAssembly 1.0 u jistgħu jintużaw biex imexxu ħafna applikazzjonijiet WASI, li jipprovdu prestazzjoni biss 4-5 darbiet inqas minn magni JIT (tneħħija, cranelift) u 11.5 darbiet inqas mill-eżekuzzjoni tal-kodiċi nattiv. Meta mqabbla ma' interpreti oħra tal-WebAssembly (wac, ħajja, wasm-mikro-runtime), wasm3 irriżulta li kien 15.8 darbiet aktar mgħaġġel.

Biex tmexxi wasm3, għandek bżonn 64Kb ta 'memorja tal-kodiċi u 10Kb ta' RAM, li jippermettilek tuża l-proġett biex tmexxi applikazzjonijiet miġbura f'WebAssembly fuq mikrokontrolluri, bħal Arduino MKR*, Arduino Due, Particle Photon, ESP8266, ESP32, Air602 (W600), nRF52, nRF51 Blue Pill (STM32F103C8T6), MXChip AZ3166 (EMW3166),
Maix (K210), HiFive1 (E310), Fomu (ICE40UP5K) u ATmega1284, kif ukoll fuq bordijiet u kompjuters ibbażati fuq arkitetturi x86, x64, ARM, MIPS, RISC-V u Xtensa. Is-sistemi operattivi appoġġjati jinkludu Linux (inklużi routers ibbażati fuq OpenWRT), Windows, macOS, Android u iOS. Huwa wkoll possibbli li jiġi kkompilat wasm3 f'kodiċi intermedju tal-WebAssembly biex iħaddem l-interpretu fil-browser jew għal eżekuzzjoni nested (self-hosting).

Prestazzjoni għolja tinkiseb permezz tal-użu tat-teknoloġija fl-interpretu Massey Meta Machine (M3), li jittraduċi bytecode 'l quddiem f'operazzjonijiet li jiġġeneraw il-kodiċi tal-psewdo-magna aktar effiċjenti biex inaqqsu l-overhead tad-dekodifikazzjoni tal-bytecode, u jikkonverti l-mudell ta' eżekuzzjoni ta 'magna virtwali bbażat fuq munzell għal approċċ aktar effiċjenti bbażat fuq ir-reġistru. Operazzjonijiet f'M3 huma funzjonijiet C li l-argumenti tagħhom huma reġistri tal-magni virtwali li jistgħu jiġu mmappjati mar-reġistri tas-CPU. Sekwenzi ta' operazzjonijiet ta' ottimizzazzjoni li jseħħu ta' spiss huma kkonvertiti f'operazzjonijiet fil-qosor.

Barra minn hekk, tista 'tinnota riżultati tar-riċerka tixrid
WebAssembly fuq il-Web. Wara li analizzaw 948 elf mill-aktar siti popolari skont il-klassifikazzjonijiet Alexa, ir-riċerkaturi sabu li WebAssembly jintuża fuq 1639 sit (0.17%), i.e. fuq 1 minn kull 600 sit. B'kollox, 1950 modulu WebAssembly ġew imniżżla fuq is-siti, li minnhom 150 kienu uniċi. Meta qieset l-ambitu tal-użu ta 'WebAssembly, saru konklużjonijiet diżappuntanti - f'aktar minn 50% tal-każijiet, WebAssembly intuża għal skopijiet malizzjużi, pereżempju, għat-tħaffir tal-munita kriptografika (55.7%) u ħabi l-kodiċi ta' skripts malizzjużi (0.2%). . Użi leġittimi ta' WebAssembly jinkludu t-tħaddim ta' libreriji (38.8%), il-ħolqien ta' logħob (3.5%), u t-tħaddim ta' kodiċi personalizzat mhux JavaScript (0.9%). F'14.9% tal-każijiet, WebAssembly intuża biex janalizza l-ambjent għall-identifikazzjoni tal-utent (marki tas-swaba).

L-ewwel rilaxx ta' wasm3, interpretu veloċi tal-WebAssembly

Sors: opennet.ru

Żid kumment