wasm3,WebAssembly解释器发布了其第一个版本

W3

近日, wasm3的第一个版本已发布,这是 口译员 中间代码非常快 通过WebAssembly因为它主要是为了在没有针对WebAssembly的JIT实现的微控制器和平台上运行WebAssembly应用程序而设计的,所以没有足够的内存供JIT工作,或者没有创建JIT实现所需的可执行内存页。

对于那些不熟悉WebAssembly的人,您应该知道这是 一种低级的语言 最初设计为从C和C ++编译时的目标格式,尽管它还支持其他语言的源代码,例如Rust和Go。 这种可移植的二进制代码格式用于从客户端浏览器完全执行脚本。

关于wasm3

Wasm3通过兼容性测试 使用WebAssembly 1.0规范和 可用于运行许多WASI应用程序, 提供的性能仅比JIT引擎低4-5倍,比本机代码执行低11.5倍。

与其他表演者相比 来自WebAssembly(wac,life,wasm-micro-runtime), wasm3的速度提高了15.8倍。

Wasm3最初是一个研究项目,并且通过多种方式一直如此。 在不同环境中评估电机是调查的一部分。 由于我们在MCU上运行了Lua,JS,Python,Lisp(...),因此WebAssembly实际上是一个很有前途的替代方案。 它提供了一个完全隔离,定义明确且可预测的环境。 在实际用例中,我们可以列出最先进的计算,脚本,物联网规则执行,区块链合同等。

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),AT40ga5(ICE1284gaXNUMX), 以及基于架构的主板和计算机上 x86,x64,ARM,MIPS,RISC-V和Xtens。

通过使用Massey Meta Machine技术获得高性能 (M3)在翻译中, 减少解码字节码的开销,字节码 主动翻译 在更有效的操作中生成伪机代码,并且堆栈式虚拟机的执行模型成为更有效的寄存器方法,M3中的操作是C函数,其参数是虚拟机的寄存器,可以反映在CPU中寄存器。

频繁的优化工作流变成了摘要操作。

另外, 这项研究的结果可以在WebAssembly上观察到,在分析了948万Alexa评级的最受欢迎站点之后,研究人员发现 1639个站点(0.17%)使用WebAssembly,即1个站点中的600个。

网站总共显示了1950个WebAssembly模块的负载,其中150个是唯一的。

在考虑WebAssembly的范围时,得出了令人失望的结论:在超过50%的情况下,WebAssembly被用于恶意目的,例如,挖掘加密货币(55,7%)并从恶意脚本中隐藏代码(0,2,XNUMX%) 。

支持的操作系统 对于Wasm3, 我们可以找到Linux 包括基于OpenWRT的路由器, Windows,macOS,Android和iOS。 也可以将wasm3编译为中间WebAssembly代码,以在浏览器中运行解释器或进行自我托管。

在WebAssembly的合法使用中,观察到库执行(38.8%),游戏创建(3.5%)和非JavaScript本机代码执行(0.9%)。 在14,9%的情况下,使用WebAssembly分析了用于用户识别(指纹)的环境。

尝试wasm3

对于那些有兴趣在系统中使用此解释器的人, 可以查阅文档以及项目代码 用C语言编写并在MIT许可下分发, 在下面的链接中。


本文内容遵循我们的原则 编辑伦理。 要报告错误,请单击 信息.

成为第一个发表评论

发表您的评论

您的电子邮件地址将不会被发表。

*

*

  1. 负责数据:MiguelÁngelGatón
  2. 数据用途:控制垃圾邮件,注释管理。
  3. 合法性:您的同意
  4. 数据通讯:除非有法律义务,否则不会将数据传达给第三方。
  5. 数据存储:Occentus Networks(EU)托管的数据库
  6. 权利:您可以随时限制,恢复和删除您的信息。

布尔值(true)