Pirmā wasm3 izlaidums, ātrs WebAssembly tulks

Pieejams pirmais izdevums wasm3, ļoti ātrs WebAssembly starpposma koda tulks, kas galvenokārt paredzēts lietošanai WebAssembly lietojumprogrammu palaišanai mikrokontrolleros un platformās, kurām nav WebAssembly JIT ieviešanas, kurām nav pietiekami daudz atmiņas, lai palaistu JIT, vai nevar izveidot izpildāmās atmiņas lapas, kas nepieciešamas JIT ieviešanai. . Projekta kods ir rakstīts C un izplata saskaņā ar MIT licenci.

Wasm3 iet garām testus saderīgs ar WebAssembly 1.0 specifikāciju un to var izmantot, lai palaistu daudzas WASI lietojumprogrammas, nodrošinot veiktspēju tikai 4-5 reizes zemāku nekā JIT dzinēji (pacelt, celtnis) un 11.5 reizes zemāka nekā vietējā koda izpilde. Salīdzinot ar citiem WebAssembly tulkiem (WAC, dzīve, wasm-micro-runtime), wasm3 izrādījās 15.8 reizes ātrāks.

Lai palaistu wasm3, jums ir nepieciešama 64Kb koda atmiņa un 10Kb RAM, kas ļauj izmantot projektu, lai palaistu lietojumprogrammas, kas apkopotas WebAssembly mikrokontrolleri, piemēram, Arduino MKR*, Arduino Due, Particle Photon, ESP8266, ESP32, Air602 (W600), nRF52, nRF51 Blue Pill (STM32F103C8T6), MXChip AZ3166 (EMW3166),
Maix (K210), HiFive1 (E310), Fomu (ICE40UP5K) un ATmega1284, kā arī uz platēm un datoriem, kuru pamatā ir x86, x64, ARM, MIPS, RISC-V un Xtensa arhitektūra. Atbalstītās operētājsistēmas ietver Linux (tostarp maršrutētājus, kuru pamatā ir OpenWRT), Windows, macOS, Android un iOS. Ir iespējams arī apkopot wasm3 WebAssembly starpkodā, lai palaistu tulku pārlūkprogrammā vai ligzdotai izpildei (pašmitināšana).

Augsta veiktspēja tiek panākta, izmantojot tulka tehnoloģiju Massey Meta mašīna (M3), kas pārvērš baitkodu efektīvākās pseidomašīnas koda ģenerēšanas operācijās, lai samazinātu baitkoda dekodēšanas pieskaitāmās izmaksas, un pārvērš uz steku balstītu virtuālās mašīnas izpildes modeli efektīvākā uz reģistriem balstītā pieejā. Operācijas M3 ir C funkcijas, kuru argumenti ir virtuālās mašīnas reģistri, kurus var kartēt ar CPU reģistriem. Bieži sastopamās optimizācijas darbību secības tiek pārveidotas par kopsavilkuma operācijām.

Turklāt var atzīmēt pētījumu rezultāti izplatīšanās
WebAssembly tīmeklī. Izanalizējot 948 tūkstošus populārāko vietņu saskaņā ar Alexa reitingiem, pētnieki atklāja, ka WebAssembly tiek izmantots 1639 vietnēs (0.17%), t.i. vienā no 1 vietnēm. Kopumā vietnēs tika lejupielādēti 600 WebAssembly moduļi, no kuriem 1950 bija unikāli. Apsverot WebAssembly izmantošanas apjomu, tika izdarīti neapmierinoši secinājumi - vairāk nekā 150% gadījumu WebAssembly tika izmantots ļaunprātīgiem mērķiem, piemēram, kriptovalūtas ieguvei (50%) un kaitīgo skriptu koda slēpšanai (55.7%). . WebAssembly likumīgā izmantošana ietver bibliotēku darbināšanu (0.2%), spēļu izveidi (38.8%) un pielāgota koda, kas nav JavaScript kods (3.5%). 0.9% gadījumu WebAssembly tika izmantots, lai analizētu vidi lietotāja identificēšanai (pirkstu nospiedumu noņemšanai).

Pirmā wasm3 izlaidums, ātrs WebAssembly tulks

Avots: opennet.ru

Pievieno komentāru