wasm3 的第一个版本,一个快速的 WebAssembly 解释器

可得到 первыйвыпуск 瓦斯姆3,一种非常快速的 WebAssembly 中间代码解释器,主要用于在没有 WebAssembly JIT 实现、没有足够内存来运行 JIT 或无法创建实现 JIT 所需的可执行内存页面的微控制器和平台上运行 WebAssembly 应用程序。 项目代码是用C语言编写的 分发者 在麻省理工学院的许可下。

Wasm3 通过 测试 兼容WebAssembly 1.0规范,可用于运行许多WASI应用程序,提供的性能仅比JIT引擎低4-5倍(升空, 起重机),比本机代码执行低 11.5 倍。 与其他 WebAssembly 解释器相比(WAC, 生活, wasm-微运行时),wasm3 速度快了 15.8 倍。

要运行 wasm3,您需要 64Kb 代码内存和 10Kb RAM,这允许您使用该项目在 WebAssembly 上运行编译的应用程序 微控制器,如 Arduino MKR*、Arduino Due、Particle Photon、ESP8266、ESP32、Air602 (W600)、nRF52、nRF51 Blue Pill (STM32F103C8T6)、MXChip AZ3166 (EMW3166)、
Maix (K210)、HiFive1 (E310)、Fomu (ICE40UP5K) 和 ATmega1284,以及基于 x86、x64、ARM、MIPS、RISC-V 和 Xtensa 架构的主板和计算机。 支持的操作系统包括Linux(包括基于OpenWRT的路由器)、Windows、macOS、Android和iOS。 还可以将 wasm3 编译为 WebAssembly 中间代码,以在浏览器中运行解释器或嵌套执行(自托管)。

通过在口译员中使用技术来实现高性能 梅西元机器 (M3),它将字节码前向翻译为更高效的伪机器代码生成操作,以减少字节码解码开销,并将基于堆栈的虚拟机执行模型转换为更高效的基于寄存器的方法。 M3 中的操作是 C 函数,其参数是可以映射到 CPU 寄存器的虚拟机寄存器。 频繁出现的优化操作序列被转换为汇总操作。

另外,还可以注意到 研究成果 分配
Web 上的 WebAssembly。 根据 Alexa 评级分析了 948 万个最受欢迎的网站后,研究人员发现 1639 个网站(0.17%)使用了 WebAssembly,即每 1 个网站中就有 600 个。 这些网站上总共下载了 1950 个 WebAssembly 模块,其中 150 个是唯一的。 在考虑 WebAssembly 的使用范围时,得出了令人失望的结论 - 在超过 50% 的情况下,WebAssembly 被用于恶意目的,例如挖掘加密货币(55.7%)和隐藏恶意脚本代码(0.2%) 。 WebAssembly 的合法用途包括运行库 (38.8%)、创建游戏 (3.5%) 和运行自定义非 JavaScript 代码 (0.9%)。 在 14.9% 的情况下,WebAssembly 用于分析用户识别(指纹)的环境。

wasm3 的第一个版本,一个快速的 WebAssembly 解释器

来源: opennet.ru

添加评论