Primer llançament de wasm3, un intèrpret ràpid de WebAssembly

Disponible primera edició wasm3, un intèrpret de codi intermedi de WebAssembly molt ràpid dissenyat principalment per utilitzar-se en l'execució d'aplicacions WebAssembly en microcontroladors i plataformes que no tenen una implementació JIT per a WebAssembly, no tenen prou memòria per executar JIT o no poden crear les pàgines de memòria executables necessàries per implementar JIT . El codi del projecte està escrit en C i Distribuït per sota la llicència MIT.

Wasm3 passa proves compatible amb l'especificació WebAssembly 1.0 i es pot utilitzar per executar moltes aplicacions WASI, proporcionant un rendiment només 4-5 vegades inferior al dels motors JIT (enlairar, elevador de grua) i 11.5 vegades menor que l'execució de codi natiu. En comparació amb altres intèrprets de WebAssembly (wac, vida, wasm-micro-runtime), wasm3 va resultar ser 15.8 vegades més ràpid.

Per executar wasm3, necessiteu 64 Kb de memòria de codi i 10 Kb de RAM, que us permeten utilitzar el projecte per executar aplicacions compilades a WebAssembly a microcontroladors, com ara Arduino MKR*, Arduino Due, Particle Photon, ESP8266, ESP32, Air602 (W600), nRF52, nRF51 Blue Pill (STM32F103C8T6), MXChip AZ3166 (EMW3166),
Maix (K210), HiFive1 (E310), Fomu (ICE40UP5K) i ATmega1284, així com en plaques i ordinadors basats en arquitectures x86, x64, ARM, MIPS, RISC-V i Xtensa. Els sistemes operatius admesos inclouen Linux (inclosos encaminadors basats en OpenWRT), Windows, macOS, Android i iOS. També és possible compilar wasm3 al codi intermedi de WebAssembly per executar l'intèrpret al navegador o per a l'execució imbricada (autoallotjament).

S'aconsegueix un alt rendiment mitjançant l'ús de la tecnologia en l'intèrpret Massey Meta Machine (M3), que tradueix el bytecode en operacions de generació de codi de pseudo-màquina més eficients per reduir la sobrecàrrega de descodificació de bytecode i converteix el model d'execució de la màquina virtual basat en la pila en un enfocament més eficient basat en registres. Les operacions a M3 són funcions C els arguments de les quals són registres de màquines virtuals que es poden assignar als registres de la CPU. Les seqüències d'operacions d'optimització que es produeixen amb freqüència es converteixen en operacions de resum.

A més, es pot assenyalar resultats de la investigació estenent-se
WebAssembly al web. Després d'analitzar 948 mil dels llocs més populars segons les puntuacions d'Alexa, els investigadors van trobar que WebAssembly s'utilitza en 1639 llocs (0.17%), és a dir. en 1 de cada 600 llocs. En total, es van descarregar 1950 mòduls WebAssembly als llocs, dels quals 150 eren únics. Quan es va considerar l'abast d'ús de WebAssembly, es van arribar a conclusions decebedores: en més del 50% dels casos, WebAssembly es va utilitzar amb finalitats malicioses, per exemple, per extreure criptomoneda (55.7%) i ocultar el codi d'scripts maliciosos (0.2%). . Els usos legítims de WebAssembly inclouen l'execució de biblioteques (38.8%), la creació de jocs (3.5%) i l'execució de codi personalitzat que no sigui JavaScript (0.9%). En el 14.9% dels casos, es va utilitzar WebAssembly per analitzar l'entorn per a la identificació dels usuaris (empremta digital).

Primer llançament de wasm3, un intèrpret ràpid de WebAssembly

Font: opennet.ru

Afegeix comentari