Firefox 58中WebAssembly组件性能提升10倍
极客时间编辑部
讲述:丁婵大小:1.20M时长:02:38
Mozilla 在 Firefox 58 中为 WebAssembly(简称 WASM)组件推出了一套双层编译系统,号称解析和编译 WebAssembly 代码的速度达到 30-60MB/s,足够在有线网络中实现实时编译。基准测试表明,新版的性能比旧版提高了 10 倍,比 Chrome 快 10 倍以上。
Mozilla 工程师林·克拉克(Lin Clark)列举了一些测出的性能数据:“在一部台式机上,我们编译 WebAssembly 代码的速度高达 30-60MB 每秒,比网络传输数据包的速度都快。使用 Firefox Nightly 或 Beta 的用户可以在自己的设备上体验这一进步。即使在性能一般的移动设备上编译速度也有 8MB/s,快过绝大多数移动网络的平均下载带宽。“
独立测试人员复现了类似的测试结果,他使用一台安装了安卓系统的华为 P10 Lite 进行测试,结果显示,在 Firefox 57 中的编译速度为 1.7MB/s,换成 Firefox 58 就提升到了 11.8MB/s。 Windows 10 桌面平台的测试中,编译速度也从 57 版的 9MB/s 提高到 58 版的 52.8MB/s。
这次性能提升之前,人们已经发现 WebAssembly 组件的速度要比 JavaScript 更快了,有案例分析显示,切换到 WebAssembly 可以带来 3 倍的加载速度,同时计算密集型图形程序的执行速度也提升了 30%。
在一篇博文中,林·克拉克详细介绍了编译器是如何利用 Firefox 的并行架构,将编译任务拆解为两个独立线程的。第一个线程直接启动,实时将网络传输来的代码编译成一个基础版本;第二个线程则在后台将这个基础版本进一步编译为优化好的版本。优化版本编译完成后就会替换掉基础版本,进一步提升代码运行效率。
这次改进意味着 WebAssembly 可以在网络传输代码的同时实时编译出结果。著名 Web 技术专家叶华达·卡兹(Yehuda Katz)指出这一进步对 web 开发的意义。
他表示,JavaScript 代码需要花费时间去解析编译,所以资源消耗远大于相同大小的图像文件。如今 WebAssembly 可以做到实时解析和编译,其资源消耗就更接近图像文件,比 JavaScript 省力多了,可以说是改变游戏规则的一次进步。
公开
同步至部落
取消
完成
0/2000
荧光笔
直线
曲线
笔记
复制
AI
- 深入了解
- 翻译
- 解释
- 总结
该免费文章来自《极客视点》,如需阅读全部文章,
请先领取课程
请先领取课程
免费领取
© 版权归极客邦科技所有,未经许可不得传播售卖。 页面已增加防盗追踪,如有侵权极客邦将依法追究其法律责任。
登录 后留言
精选留言
由作者筛选后的优质留言将会公开显示,欢迎踊跃留言。
收起评论