写点什么

在 Firefox 58 中,WebAssembly 组件性能提升了 10 倍

2018 年 2 月 06 日

看新闻很累?看技术新闻更累?试试下载 InfoQ 手机客户端,每天上下班路上听新闻,有趣还有料!

Mozilla 在 Firefox 58 中为 WebAssembly(WASM)组件推出了一套双层编译系统,号称解析和编译 WASM 代码的速度达到 30-60MB/s,足够在有线网络中实现实时编译。基准测试表明,新版的性能比旧版提高了 10 倍,比 Chrome 快 10 倍以上。

Mozilla Hacks 博客的一篇文章中,Lin Clark 列举了一些测出的性能数据:

在一部台式机上,我们编译 WebAssembly 代码的速度高达 30-60MB 每秒,比网络传输数据包的速度都快

使用 Firefox Nightly 或 Beta 的用户可以在自己的设备上体验这一进步。即使在性能一般的移动设备上编译速度也有 8MB/s,快过绝大多数移动网络的平均下载带宽。

独立测试人员复现了类似的测试结果。 Reddit 用户 a_potato_is_missing 用 Luke Wagner 的 tanks 编译速度测试做了对比,他使用一台安装了安卓系统的华为P10 Lite 进行测试,结果显示,在Firefox v57 中的编译速度为1.7MB/s,换成Firefox v58 就提升到了11.8MB/s。 Windows 10 桌面平台的测试中,编译速度从v57 上的9MB/s 提高到了v58 上的52.8MB/s。相比之下,Chrome 在Android 设备上只跑了1MB/s,桌面平台上只有4.1MB/s,远远落后。

这次性能提升之前,人们已经发现WebAssembly 组件的速度比JavaScript 更快了。此前的报告中, Figma 的一篇案例分析显示,切换到 WebAssembly 可以带来 3 倍的加载速度;Hackernoon公布的基准测试则表明,计算密集型图形程序的执行速度提升了 30%。

在一篇博文中,Lin Clark 详细介绍了编译器如何利用 Firefox 的并行架构将编译任务拆解为两个独立的线程。第一个线程直接启动,实时将网络传输来的代码编译成一个基础版本;第二个线程则在后台将这个基础版本进一步编译为优化好的版本。优化版本编译完成后就会替换掉基础版本,进一步提升代码运行效率。

这次改进意味着 WebAssembly 可以在网络传输代码的同时实时编译出结果。Yehuda Katz 指出了这一进步对 web 开发的意义:

JavaScript 代码需要花费时间解析编译,所以资源消耗远比相同大小的图像文件要多。

如今 WASM 可以做到实时解析和编译,其资源消耗就更接近图像文件,比 JavaScript 省力多了。

改变游戏规则啊!

查看英文原文 With Firefox Version 58, WebAssembly Gets 10X Faster


感谢薛命灯对本文的审校。

给InfoQ 中文站投稿或者参与内容翻译工作,请邮件至 editors@cn.infoq.com 。也欢迎大家通过新浪微博( @InfoQ @丁晓昀),微信(微信号: InfoQChina )关注我们。

2018 年 2 月 06 日 18:001678

评论

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

字节跳动大佬整理的这份《算法中文手册》火了,不少小伙伴靠这份指南成功掌握了算法的核心技能,成功拿到了 BATJ等大厂offer。

Java成神之路

Java 程序员 架构 面试 编程语言

两年Java开发经验,我凭借这份349页的《阿里Java面试通关手册》成功拿到字节跳动Offer。

Java成神之路

Java 程序员 架构 面试 编程语言

助力ARM生态 —Dragonwell新增aarch64支持

阿里云基础软件团队

巧合?达摩院2021十大科技是十九世纪那场幻想的升级版?

Java架构师迁哥

新的方式-谷歌浏览器插件的使用【天猫超市抢购飞天茅台】

谙忆

SpringBoot太强了、ShardingSphere上榜

云流

spring 编程 框架

理财之我见

三石

理财 28天写作

跪了!Alibaba内部出品贼火的Java面试手册,全面对标蚂蚁金服、头条、拼多多等

Java架构之路

Java 程序员 架构 面试 编程语言

某Javva程序员金秋9月靠这份文档涨薪10K,你把这份Java进阶文档吃透涨薪超简单!

Java成神之路

Java 程序员 架构 面试 编程语言

第1周架构方法总结

Richard

UML 需求分析 概要设计 软件架构设计 详细设计

助力金三银四跳槽季,《Java面试突击版》第四版强势来袭

Java架构之路

Java 程序员 架构 面试 编程语言

凭借这份Java超硬核面试 “备战” 手册!我刚面试完字节跳动、阿里、华为、小米等后端岗位

Java架构之路

Java 程序员 架构 面试 编程语言

花火交易所系统开发、雷达模式系统搭建开发

W13902449729

花火交易所系统开发 雷达模式系统搭建开发

12月阿里蚂蚁金服四面(已拿offer)Java技术面经总结:项目+源码+jvm调优+MySQL

云流

Java 学习 编程 程序员 面试

python 输入输出

老赵

Python 28天写作

重学JS | 改变函数上下文的3种方式

梁龙先森

前端 编程语言 28天写作

探索 React 合成事件

pingan8787

前端 React 28天写作

计算机网络基础

roadup

TCP 网络 HTTP 计算机 HTTP3.0

数智化浪潮之中,传统企业如何抓住转型机遇?

京东科技开发者

DevOps

不交“人脉”交朋友:新荣耀的底气与新机

脑极体

跨界

张老蔫

28天写作

卧槽,牛皮了!某程序员苦刷这两份算法PDF47天,四面字节斩获心仪大厂offer!

Java成神之路

Java 程序员 架构 面试 编程语言

智慧社区安防建设的功能,智慧社区建设方案

135深圳3055源中瑞8032

音频特征提取方法和工具汇总

行者AI

音视频

DAPP智能合约交易系统开发、DAPP系统开发的详细解释

W13902449729

DAPP智能合约交易系统开发 DAPP系统开发

精选算法面试-队列

李孟

算法 队列 28天写作

化妆品溯源系统开发,区块链防伪溯源

135深圳3055源中瑞8032

博弈论 - 海盗分金

石云升

博弈论 28天写作 海盗分金

redis中的一致性hash

原来不悔

redis 一致性hash

架构师训练营第七周作业

zamkai

前端性能优化

roadup

前端工程 性能调优

在Firefox 58中,WebAssembly组件性能提升了10倍-InfoQ