首页 > 解决方案 > WebAssembly 使用什么引擎?

问题描述

在 Chrome 中,JavaScript 运行在 V8 引擎上,但运行 WebAssembly 代码的引擎是什么?

浏览器如何突然能够通过 WebAssembly 提高性能?这个 WebAssembly 引擎是在浏览器中始终可用,还是最近被添加到浏览器中?

标签: javascriptperformancebrowserwebassembly

解决方案


自 2017 年 11 月以来,仅所有主要浏览器(Chrome、Firefox、Safari、Edge)都支持 WebAssembly,这意味着旧版本的浏览器不支持 WebAssembly。(来自Mozilla的博客文章

为了理解为什么 WebAssembly 比 Javascript 更快,有一个 Lin Clark 的优秀系列(链接)。

文章的结论是引用

在许多情况下,WebAssembly 比 JavaScript 更快,因为:

  • 获取 WebAssembly 花费的时间更少,因为它比 JavaScript 更紧凑,即使在压缩时也是如此。
  • 解码 WebAssembly 比解析 JavaScript 花费的时间更少。
  • 编译和优化花费的时间更少,因为 WebAssembly 比 JavaScript 更接近机器代码,并且已经在服务器端进行了优化。
  • 不需要重新优化,因为 WebAssembly 内置了类型和其他信息,因此 JS 引擎不需要推测它何时优化它使用 JavaScript 的方式。
  • 执行通常需要更少的时间,因为开发人员需要知道的编译器技巧和陷阱更少,才能编写出一致的高性能代码,而且 WebAssembly 的指令集更适合机器。
  • 由于内存是手动管理的,因此不需要垃圾收集。

推荐阅读