Primera versión de wasm3, un intérprete rápido de WebAssembly

Disponible primera edición wasm3, un intérprete de código intermedio WebAssembly muy rápido, diseñado principalmente para ejecutar aplicaciones WebAssembly en microcontroladores y plataformas que no tienen una implementación JIT de WebAssembly, no tienen suficiente memoria para ejecutar JIT o no pueden crear las páginas de memoria ejecutables necesarias para la implementación JIT . El código del proyecto está escrito en lenguaje C y distribuido por bajo la licencia del MIT.

Wasm3 pasa тесты para ser compatible con la especificación WebAssembly 1.0 y se puede utilizar para ejecutar muchas aplicaciones WASI, proporcionando un rendimiento solo 4-5 veces menor que los motores JIT (despegar, elevación de la grúa) y 11.5 veces menor que la ejecución de código nativo. En comparación con otros intérpretes de WebAssembly (wac, la vida, wasm-micro-tiempo de ejecución), wasm3 fue 15.8 veces más rápido.

Wasm3 requiere 64 Kb de memoria para el código y 10 Kb de RAM, lo que le permite usar el proyecto para ejecutar aplicaciones compiladas en WebAssembly en microcontroladores, como Arduino MKR*, Arduino Due, Particle Photon, ESP8266, ESP32, Air602 (W600), nRF52, nRF51 Blue Pill (STM32F103C8T6), MXChip AZ3166 (EMW3166),
Maix (K210), HiFive1 (E310), Fomu (ICE40UP5K) y ATmega1284, así como placas y computadores basados ​​en arquitecturas x86, x64, ARM, MIPS, RISC-V y Xtensa. Los sistemas operativos compatibles son Linux (incluidos los enrutadores basados ​​en OpenWRT), Windows, macOS, Android e iOS. También es posible compilar wasm3 en un código WebAssembly intermedio para ejecutar el intérprete en el navegador o para el lanzamiento anidado (autoalojamiento).

Se logra un alto rendimiento mediante el uso de la tecnología en el intérprete Massey Meta-Máquina (M3), que traduce de manera preventiva el código de bytes en operaciones de generación de código de pseudomáquina más eficientes para reducir la sobrecarga de decodificación de códigos de bytes y transforma el modelo de ejecución de la máquina virtual de pila en un enfoque de registro más eficiente. Las operaciones en M3 son funciones de C cuyos argumentos son registros de máquinas virtuales que se pueden asignar a registros de CPU. Las secuencias de operaciones de optimización que ocurren con frecuencia se convierten en operaciones de resumen.

Adicionalmente, se puede señalar Resultados de la investigacion Distribución
WebAsamblea en Web. Después de analizar los 948 mil sitios más populares según la calificación de Alexa, los investigadores descubrieron que WebAssembly se usa en 1639 sitios (0.17%), es decir, en 1 de cada 600 sitios. En total, se detectaron 1950 módulos WebAssembly en los sitios, de los cuales 150 son únicos. Al considerar el alcance de WebAssembly, se sacaron conclusiones decepcionantes: en más del 50 % de los casos, WebAssembly se usó con fines maliciosos, por ejemplo, para extraer criptomonedas (55.7 %) y ocultar el código de scripts maliciosos (0.2 %). Los usos legítimos de WebAssembly incluyen la ejecución de bibliotecas (38.8 %), la creación de juegos (3.5 %) y la ejecución de código nativo que no es JavaScript (0.9 %). En el 14.9% de los casos, se utilizó WebAssembly para analizar el entorno para la identificación del usuario (fingerprinting).

Primera versión de wasm3, un intérprete rápido de WebAssembly

Fuente: opennet.ru

Añadir un comentario