JavaScript vs WebAssembly:哪个更节能、更快?

【CSDN 编者按】Wasm 是否会取代 JavaScript ?这是 WebAssembly 发布之初不少人发出的疑问,本文作者在通过各项基准测试之后,回答了这个问题。

作者 | Loraine Lawson   责编 | 弯月
出品 | CSDN(ID:CSDNnews)

链接:https://thenewstack.io/javascript-vs-wasm-which-is-more-energy-efficient-and-faster/

JavaScript 还是 WebAssembly(简称 Wasm),究竟哪个运行速度更快、更节能?葡萄牙米尼奥大学对这个问题展开了研究,并得出了结论:虽然在实验室微基准测试方面,JavaScript 比 Wasm 更节能、更快,但在实际应用程序中,Wasm 在速度和节能方面皆优于 JavaScript,有时能高出 30%。

请不要忘记,如今 Wasm 还处于发展的早期阶段。

研究员兼软件工程师 João De Macedo 表示:“Wasm 仍处于起步阶段,只有时间能告诉我们它将如何发展。在我们看来,Wasm 完全有可能战胜原生应用,并帮助网络浏览器成为 21 世纪的操作系统。”


微基准测试与实际应用


该研究于 2022 年发表,不仅参考了微观基准,也考虑了实际情况。

João De Macedo解释道:“微基准测试是一种程序,用于跟踪和测量某个明确定义的任务的性能,例如持续时长、操作速率、带宽等。微基准测试是测量软件系统性能的主要方法之一,因此,Wasm 也不例外。”

由于 Wasm 的主要目标之一是提高 Web 应用程序的性能,因此比较 Wasm 和 JS 的运行时和节能的表现非常重要。

从微基准测试来看,在有些情况下,JavaScript 在速度和节能方面的表现都超过了 Wasm。然而,在 Google Chrome 和微软 Edge 上,Wasm 不仅比 JavaScript 更节能,而且性能也更好。但是,JavaScript 在 Mozilla Firefox 上确实比 Wasm 具有更好的性能,而且大多数时候的差异很明显。

尽管如此,最终 Wasm 仍将在实际的应用程序中占据主导地位。

报告称,“初步结果表明,WebAssembly 虽然仍处于起步阶段,但已开始超越 JavaScript,并且 WebAssembly 的成长空间也更大。统计分析表明,与 JavaScript 相比,WebAssembly 表现出了显著的性能差异。”


JavaScript 与 Wasm 研究的实际表现


该研究通过 Wasmboy 基准测试,测量了 Wasm 和 JavaScript 在实际应用程序中的表现。Wasmboy 基准测试是一个 Gameboy/Gameboy Color 模拟器,是用Typescript 编写的Wasm基准测试。Wasmboy 是用 JavaScript/TypeScript 编写的,创建的主要目标是比较 AssemblyScript 编译器生成的 Wasm 与 TypeScript 编译器生成的 ES6 最新版 JavaScript 之间的运行时性能。

报告称:“该游戏机包括六个开源游戏,可以从游戏机中运行。我们更新了 WasmBoy 的源代码,指定了执行游戏的浏览器。”

因此,总共有六款游戏在三种浏览器(Chrome、Edge 和 Firefox)上运行,使用两种语言,这样团队就有了 36 个独特的样本。

此外,他们还使用了 PSPDFKit 基准测试。该基准测试使用的软件支持在任何平台上查看、注释和填写 PDF文档中的表格。该报告指出,创建开源基准是为了评估将软件移植到 Wasm 生态系统的可能性,并比较 Wasm 与 JavaScript 的实现。该团队修改了应用程序的源代码,使用这两种语言(was 和 asm.js)执行多个输入。为了利用实际输入执行基准测试,该团队考虑了五个不同的 pdf 文档,其中包括将一本书分为三个部分、一篇科学论文和 20 张幻灯片。

报告称,“与 Wasmboy 基准测试类似,我们编写了一些 makefile,在不同浏览器中自动执行测试”,结果得到了在三种浏览器中运行的、用两种语言编写的五个示例程序,也就是说共有 30 个各不相同的程序。

此外,此次研究还考虑了各种微基准,这些程序最初是用 C 编写的,然后使用 Emscripten 编译器编译成了 Wasm 和 JavaScript。还有一些其他的语言也可编译为 Wasm,其中包括 C/C++、Rust、Go、Python 和 AssemblyScript(TypeScript 的一种形式)。

有关微基准测试和研究其他方面的详细信息,请参见 João De Macedo、Rui Abreu、Rui Pereira 和 João Saraiva 的论文《WebAssembly与JavaScript:能源和运行时性能》(https://ieeexplore.ieee.org/document/9830108)。

总的来说,他们可以通过这种方法检查JS 和 Wasm 如何以不同方式处理规模和输入大小。之前有研究使用了这种方法,但只检查了虚拟机的性能。De Macedo 的研究希望了解真实世界的应用程序,因此该团队开发了一个框架来测量基于浏览器的环境中的性能。


Wasm 是否会取代 JavaScript?


De Macedo 认为,“也许永远不会,因为 JS 更适合不需要超高性能的网页。目前,Wasm 只能作为 JS 的补充,而不能取而代之。但是,如果 Wasm 得到进一步发展,就有可能在某些应用程序中取代 JS,因为 Wasm 的加载时间更快,而且资源的使用效率更高。”

De Macedo 认为,从长远来看 Wasm 将带来颠覆性的改变。

他表示:“Wasm 不仅会彻底改变Web,而且还有可能颠覆技术市场的多个领域,包括云,尽管越来越多的组织采用了容器模式,但并未能真正满足每个人都需求。”

《2022-2023 中国开发者大调查》重磅启动,欢迎扫描下方二维码,参与问卷调研,更有 iPad 等精美大礼等你拿!

☞马斯克亲自下场测试 Twitter 功能,网友吐槽:他解雇了任何可以解释的工程师!GitHub 超 14,000 Star,中国又一 Apache 顶级开源项目诞生!开启收费模式,ChatGPT 试行 20 美元即享 Plus 体验,谷歌慌了!

相关推荐

  • ​iPhone 14 Pro 全系降价 700 元;Gmail 之父:有了 ChatGPT,搜索引擎活不过两年了|极客头条
  • 公司规定所有接口都用 POST请求,这是为什么?
  • 对抗软件规模与复杂度的战争:救命、治病、养生
  • Linux 的文件系统及文件缓存知识点整理
  • 20 张图带你搞懂 Https
  • 朋友圈那串神秘字符背后的开源项目「GitHub 热点速览」
  • TypeScript 5.0 beta 发布,更新了什么?(文末赠书)
  • 【第2845期】JS 函数式概念: 管道 和 组合
  • 哔哩哔哩⼤数据建设之路—实时DQC篇
  • 为内存塞不下Transformer犯愁?OpenAI应用AI研究负责人写了份指南
  • AI正在让很多行业的红利消失
  • Hadoop、Spark等5种大数据框架对比,你的项目该用哪种?
  • 谈谈ChatGPT 背后的核心技术论文
  • 美国击落中国无人飞艇;上海平均月薪10605元;湖南高速多车相撞致16死66伤;黄光裕已不是国美零售控股股东.....|酷玩日爆
  • 同学的爸妈是丁克?| 每日一冷
  • 坑了乐视两千万的熊猫,曾经却是中国工业摇篮
  • 全球生育率下降的原因,在于社保福利对生孩子的惩罚性
  • 外交部就美方宣称击落中国无人飞艇发表声明;西方对俄罗斯石油产品限价;韩国一艘渔船倾覆致9人失踪 | 每日大新闻
  • 韩国禁毒失败启示录:扫毒不彻底,等于彻底不扫毒
  • 历经风波,elementary OS 7正式发布