在Firefox 58中,WebAssembly组件性能提升了10倍
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省力多了。改变游戏规则啊!
相关文章:
原文发布时间:2018年02月07日
作者:Kevin Ball
本文来源:InfoQ 如需转载请联系原作者
低调大师中文资讯倾力打造互联网数据资讯、行业资源、电子商务、移动互联网、网络营销平台。
持续更新报道IT业界、互联网、市场资讯、驱动更新,是最及时权威的产业资讯及硬件资讯报道平台。
转载内容版权归作者及来源网站所有,本站原创内容转载请注明来源。
- 上一篇
跨域访问
对于跨域访问的问题,以前一直没有深入的研究, 就记得放回一个XML来支持跨域的问题。今天,一个同事问我关于跨域请求的问题,我仔细的查阅了一下资料,对于网络上的一些知识的理解,特总结如下。 对于flash跨域,在服务器端返回如下XML文件。 <?xml version="1.0" encoding="UTF-8"?> <!DOCTYPE cross-domain-policy SYSTEM "http://www.adobe.com/xml/dtds/cross-domain-policy.dtd"> <!-- Policy file for xmlsocket://socks.adobe.com --> <cross-domain-policy> <site-control permitted-cross-domain-policies="all" /> <allow-access-from domain="*" to-ports="*" /> <allow-http-request-headers-f...
- 下一篇
数据科学入门丨选Python还是R
对于想入门数据科学的新手来说,选择学Python还是R语言是一个难题,本文对两种语言进行了比较,希望能帮助你做出选择。 我是德勤的数据科学家主管,多年来我一直在使用Python和R语言,并且与Python社区密切合作了15年。本文是我对这两种语言的一些个人看法。 第三种选择 针对这个问题,Studio的首席数据科学家Htley Wickham认为,比起在二者中选其一,更好的选择是让两种语言合作。因此,这也是我提到的第三种选择,我在文本最后部分会探讨。 如何比较R和Python 对于这两种语言,有以下几点值得进行比较: · 历史:R和Python的发展历史明显不同,同时有交错的部分。 · 用户群体:包含许多复杂的社会学人类学因素。 · 性能:详细比较以及为何难以比较。 · 第三方支持:模块、代码库、可视化、存储库、组织和开发环境。 · 用例:根据具体任务和工作类型有不同的选择。 · 是否能同时使用:在Python中使用R,在R中使用Python。 · 预测:内部测试。 · 企业和个人偏好:揭晓最终答案。 历史 简史: ABC语言 - > Python 问世(1989年由Guido ...
相关文章
文章评论
共有0条评论来说两句吧...
文章二维码
点击排行
推荐阅读
最新文章
- SpringBoot2更换Tomcat为Jetty,小型站点的福音
- CentOS6,CentOS7官方镜像安装Oracle11G
- Docker使用Oracle官方镜像安装(12C,18C,19C)
- SpringBoot2配置默认Tomcat设置,开启更多高级功能
- CentOS7编译安装Gcc9.2.0,解决mysql等软件编译问题
- SpringBoot2全家桶,快速入门学习开发网站教程
- CentOS8,CentOS7,CentOS6编译安装Redis5.0.7
- Springboot2将连接池hikari替换为druid,体验最强大的数据库连接池
- Windows10,CentOS7,CentOS8安装Nodejs环境
- MySQL8.0.19开启GTID主从同步CentOS8