A’ chiad fhoillseachadh de wasm3, eadar-theangair luath WebAssembly

Ri fhaighinn chiad deasachadh bham3, eadar-theangair còd eadar-mheadhanach WebAssembly gu math luath airson a chleachdadh gu sònraichte ann a bhith a’ ruith thagraidhean WebAssembly air microcontrollers agus àrd-ùrlaran aig nach eil buileachadh JIT airson WebAssembly, aig nach eil cuimhne gu leòr airson JIT a ruith, no nach urrainn na duilleagan cuimhne so-ghnìomhaichte a chruthachadh a dh’ fheumar gus JIT a bhuileachadh . Tha còd a’ phròiseict sgrìobhte ann an C agus air a sgaoileadh le fo chead MIT.

Tha Wasm3 a’ dol seachad deuchainnean co-chòrdail ri sònrachadh WebAssembly 1.0 agus faodar a chleachdadh gus mòran thagraidhean WASI a ruith, a’ toirt seachad coileanadh dìreach 4-5 tursan nas ìsle na einnseanan JIT (togail, crann-togail) agus 11.5 tursan nas ìsle na coileanadh còd dùthchasach. An coimeas ri eadar-mhìnearan eile WebAssembly (wac, beatha, wasm-micro-runtime), thionndaidh wasm3 a-mach gu bhith 15.8 tursan nas luaithe.

Gus wasm3 a ruith, feumaidh tu 64Kb de chuimhne còd agus 10Kb de RAM, a leigeas leat am pròiseact a chleachdadh gus tagraidhean a chaidh a chur ri chèile ann an WebAssembly a ruith air microcontrollers, leithid Arduino MKR *, Arduino Due, Particle Photon, ESP8266, ESP32, Air602 (W600), nRF52, nRF51 Blue Pill (STM32F103C8T6), MXChip AZ3166 (EMW3166),
Maix (K210), HiFive1 (E310), Fomu (ICE40UP5K) agus ATmega1284, a bharrachd air bùird agus coimpiutairean stèidhichte air ailtireachd x86, x64, ARM, MIPS, RISC-V agus Xtensa. Am measg nan siostaman obrachaidh le taic tha Linux (a’ toirt a-steach routers stèidhichte air OpenWRT), Windows, macOS, Android agus iOS. Tha e comasach cuideachd wasm3 a chuir ri chèile ann an còd eadar-mheadhanach WebAssembly gus an eadar-theangair a ruith sa bhrobhsair no airson coileanadh neadachaidh (fèin-aoigheachd).

Tha coileanadh àrd air a choileanadh tro bhith a’ cleachdadh teicneòlas san eadar-theangair Inneal Massey Meta (M3), a bhios ag eadar-theangachadh bytecode gu gnìomhachd gineadh còd inneal pseudo nas èifeachdaiche gus dì-chòdachadh bytecode os an cionn a lughdachadh, agus ag atharrachadh a’ mhodail cur an gnìomh inneal brìgheil stèidhichte air stac gu dòigh-obrach nas èifeachdaiche stèidhichte air clàr. Is e gnìomhan C a th’ ann an gnìomhachd ann an M3 aig a bheil argamaidean mar chlàran inneal brìgheil a dh’ fhaodar a mhapadh gu clàran CPU. Bidh sreathan de ghnìomhachd optimization a tha a’ tachairt gu tric air an tionndadh gu gnìomhachd geàrr-chunntas.

A bharrachd air an sin, faodar a thoirt fa-near toraidhean rannsachaidh sgaoileadh
Co-chruinneachadh Web air an Lìon. Às deidh dhaibh mion-sgrùdadh a dhèanamh air 948 mìle de na làraich as mòr-chòrdte a rèir rangachadh Alexa, lorg luchd-rannsachaidh gu bheil WebAssembly air a chleachdadh air làraich 1639 (0.17%), i.e. air 1 às gach 600 làrach. Uile gu lèir, chaidh 1950 modal WebAssembly a luchdachadh sìos air na làraich, agus bha 150 dhiubh sin gun samhail. Nuair a thathar a 'beachdachadh air farsaingeachd cleachdadh WebAssembly, chaidh co-dhùnaidhean briseadh-dùil a dhèanamh - ann an còrr is 50% de chùisean, chaidh WebAssembly a chleachdadh airson adhbharan droch-rùnach, mar eisimpleir, airson mèinnearachd cryptocurrency (55.7%) agus a' falach an còd sgriobtaichean droch-rùnach (0.2%) . Tha cleachdadh dligheach WebAssembly a’ toirt a-steach ruith leabharlannan (38.8%), cruthachadh gheamannan (3.5%), agus ruith còd àbhaisteach neo-JavaScript (0.9%). Ann an 14.9% de chùisean, chaidh WebAssembly a chleachdadh gus sgrùdadh a dhèanamh air an àrainneachd airson comharrachadh luchd-cleachdaidh (lorgan-meòir).

A’ chiad fhoillseachadh de wasm3, eadar-theangair luath WebAssembly

Source: fosgailtenet.ru

Cuir beachd ann