阿里云「飞天发布时刻」2024来啦!新产品、新特性、新能力、新方案,等你来探~ 了解详情
写点什么

Wasmtime 1.0 发布,官方曾透露高性能的秘密

  • 2022-09-21
    北京
  • 本文字数:1111 字

    阅读完需:约 4 分钟

Wasmtime 1.0 发布,官方曾透露高性能的秘密

美东时间 9 月 20 日,Bytecode Alliance 宣布经过三年开发,正式迎来 Wasmtime 1.0 版本。Wasmtime 是创建在编译器 Cranelift 之上的 WebAssembly Runtime。Wasmtime 利用 Rust 编程语言,完全开源并符合 WASI。Wasmtime 还支持与 C/C++、Python、.NET、Go 等语言集成,同时运行在 Windows/Linux/macOS 等平台上。

 


Bytecode Alliance是一个推动 WebAssembly 标准化的组织,该组织正在推动标准化的 WASI(WebAssembly System Interface),使 WebAssembly 能够安全地访问文件、网络和内存等系统资源。

 

Wasmtime 1.0 被 Bytecode Alliance 总结为“快速、安全和生产就绪”,v1.0 公告中指出:

 

事实上,我们在一年多以前就可以称 Wasmtime 为生产就绪。但我们并不想只发布任何 WebAssembly 引擎。我们希望有一个超级快速和超级安全的 WebAssembly 引擎。我们希望当我们推荐人们选择 Wasmtime 时,能够感到非常有信心。

 

因此,为了确保它为你们所有人做好生产准备,我们字节码联盟的一些人在过去一年里一直在生产中运行 Wasmtime。而 Wasmtime 在这些生产环境中表现出色,提供了一个稳定的平台,同时也给我们带来了安全和速度上的胜利。

 

目前,Shopify、Fastly、微软等公司已经在生产环境中使用了 Wasmtime 半年多到一年多的时间不等。其中,Wasmtime 为 Shopify 带来了约 50% 的性能提升;Fastly 从一个 WebAssembly 引擎切换到 Wasmtime 后,每秒钟的请求数也增加了 163% ,且其他几个公司在使用 Wasmtime 时也同样看到了可观的收益。

 

高性能的秘密

 

在正式公告发布前,Bytecode Alliance 就曾发布文章,介绍 Wasmtime 1.0 所应用的加速技术。具体来看,Bytecode Alliance 通过加速编译器和 Runtime 的各项工作,大幅增加了 Wasmtime 的整体执行速度。

 

其中实例化 Wasm 模块的速度,则是加速的关键之一。官方提到,他们在过去一年间,针对这项工作进行了大量的优化,将模块实例化从毫秒等级加速至微秒等级,在实际的 SpiderMonkey.wasm 案例中,实例化时间从原本的 2 毫秒缩减成 5 微秒,快了 400 倍。

 

同时,官方针对 Cranelift 也进行了性能改进,最重要的工作是大幅改造托管器分配器 regalloc2。Regalloc2 应用了更高端的算法,来决定托管器分配值的方法,提升了程序性能。在导入 regalloc2 后,SpiderMonkey.wasm 的执行时性能提升约 5%。

 

Bytecode Alliance 表示,如果 WebAssembly 想要成功,就需要加速执行的工具,这样它才能够与原生程序进行竞争。“我们将继续朝着这个目标努力。”

 

GitHub 地址:


https://github.com/bytecodealliance/wasmtime/releases/tag/v1.0.0

 

参考链接:

 

https://www.phoronix.com/news/Wasmtime-1.0-Released


https://www.ithome.com.tw/news/152999

2022-09-21 14:457196

评论

发布
暂无评论
发现更多内容

Redis 做缓存场景引发的问题

Ayue、

redis

小程序怎样关联微信小程序二维码,实现二码合一聚合

Geek_99967b

小程序 小程序容器

vue2升级vue3:TypeScript下vuex-module-decorators/vuex-class to vuex4.x

zhoulujun

vuex3

有一说一,高并发系统设计其实一点都不难!

Java全栈架构师

Java 程序员 面试 高并发 架构设计

有哪些新手程序员不知道的小技巧?

Jackpop

vue2升级vue3: 全局变量挂载与类型声明

zhoulujun

vue2升级vue3: Event Bus 替代方案

zhoulujun

Vue3 vue2 event bus

【网关对比】Java亿级流量架构之网关设计思路

Java全栈架构师

Java 程序员 面试 微服务 架构师

linux几个没用但是有趣的命令

入门小站

Linux

Vscode有什么好用的插件?

Jackpop

C语言数组与指针练习题(原题+解析+原码)

未见花闻

6月月更

vue2升级vue3:Vue3时jsx组件绑定自定义的事件、v-model、sync修

zhoulujun

Vue3 sync tsx

vue2升级vue3:vue2 vue-i18n 升级到vue3搭配VueI18n v9

zhoulujun

国际化 i18n vue-i18n

vue2升级vue3:this.$createElement is not a function—动态组件升级

zhoulujun

JUnit VS TestNG

FunTester

AWS CloudWatch

冯亮

云计算 监控 AWS

从摄影“鄙视链”说起,聊一聊XDR的安卓化之路

脑极体

vue2升级vue3:class component的遗憾

zhoulujun

@Options @Component class component

阿里出品!图形化的ant脚本——IDEA插件CloudToolkit

Java全栈架构师

Java 阿里巴巴 程序员 IDEA 开发工具

uni-app进阶之样式框架/生产环境【day10】

恒山其若陋兮

6月月更

基于 K8s 的交付难题退退退!| 独家交付秘籍(第三回)

阿里巴巴云原生

阿里云 Kubernetes 云原生 应用交付平台

文件I/O

fy

UNIX系统

小程序与工业互联网能够相辅相成的原因

Geek_99967b

小程序 小程序开发

vue2升级vue3:webpack vue-loader 打包配置

zhoulujun

vite webpack vue-loader

必读书籍

玄兴梦影

学习 书籍 推荐书籍

Redis HyperLogLog 是什么?这些场景使用让我枪出如龙一笑破苍穹

码哥字节

redis HyperLogLog Redis 数据结构

vue-axios(一)

小恺

6月月更

一行代码可以做什么?

Jackpop

vue2升级vue3:Vue2/3插槽——vue3的jsx组件插槽slot怎么处理

zhoulujun

typescript Vue3 slots tsx slot

从-1开始实现一个中间件

艾小仙

Java 中间件 springboot

flutter系列之:flutter中的IndexedStack

程序那些事

flutter 程序那些事 6月月更

Wasmtime 1.0 发布,官方曾透露高性能的秘密_大前端_闫园园_InfoQ精选文章