Primeira versão do wasm3, um interpretador rápido de WebAssembly

Disponível o primeiro episódio wasm3, um interpretador de código intermediário WebAssembly muito rápido, principalmente projetado para executar aplicativos WebAssembly em microcontroladores e plataformas que não têm implementação JIT para WebAssembly, que possuem memória insuficiente para executar JIT ou que não permitem a criação de páginas de memória executáveis necessárias para a implementação JIT. O código do projeto é escrito em C e é distribuído sob a licença MIT.

Wasm3 passa testes na compatibilidade com a especificação WebAssembly 1.0 e pode ser usado para executar muitos aplicativos WASI, fornecendo desempenho apenas 4-5 vezes inferior aos motores JIT (liftoff, cranelift) e 11,5 vezes inferior à execução de código nativo. Comparado com outros interpretadores WebAssembly (wac, life, wasm-micro-runtime), wasm3 foi até 15,8 vezes mais rápido.

Para operar, wasm3 necessita de 64Kb de memória para código e 10Kb de RAM, permitindo que o projeto execute aplicativos compilados em WebAssembly em 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) e ATmega1284, assim como em placas e computadores baseados em arquiteturas x86, x64, ARM, MIPS, RISC-V e Xtensa. Os sistemas operacionais suportados incluem Linux (incluindo roteadores baseados em OpenWRT), Windows, macOS, Android e iOS. Também é possível compilar wasm3 em código intermediário WebAssembly para executar o interpretador no navegador ou para execução interna (self-hosting).

O alto desempenho é alcançado através do uso de técnicas no interpretador Massey Meta Machine (M3), onde a tradução antecipada de bytecode em operações mais eficientes é realizada para reduzir a sobrecarga da decodificação, gerando código de máquina pseudo e transformando o modelo de execução da máquina virtual de pilha em uma abordagem de registrador mais eficiente. As operações em M3 são funções C, cujos argumentos são os registradores da máquina virtual, que podem ser refletidos nos registradores da CPU. Sequências frequentes de operações para otimização são transformadas em operações resumidas.

Adicionalmente, pode-se destacar resultados da pesquisa disseminação
WebAssembly na Web. Após analisar 948 mil dos sites mais populares segundo o ranking da Alexa, os pesquisadores descobriram que o WebAssembly é utilizado em 1639 sites (0,17%), ou seja, em 1 a cada 600 sites. No total, foram identificados 1950 módulos WebAssembly nos sites, dos quais 150 são únicos. Ao considerar a aplicação do WebAssembly, foram feitas conclusões preocupantes — em mais de 50% dos casos, o WebAssembly foi usado para fins maliciosos, como mineração de criptomoedas (55,7%) e ocultação de código de scripts maliciosos (0,2%). Entre as aplicações legítimas do WebAssembly, destacam-se a execução de bibliotecas (38,8%), a criação de jogos (3,5%) e a execução de código próprio não escrito em JavaScript (0,9%). Em 14,9% dos casos, o WebAssembly foi usado para análise de ambiente para identificação de usuário (fingerprinting).

Primeira versão do wasm3, um interpretador rápido de WebAssembly

Fonte: opennet.ru

Compre hospedagem confiável para sites com proteção contra DDoS, servidores VPS VDS 🔥 Compre hospedagem confiável para sites com proteção contra DDoS, servidores VPS VDS | ProHoster