译者:Mactavish
你可能听说过 WebAssembly 很快。但是是什么让 WebAssembly 能这么快呢?
在这个系列中,我会解释为什么 WebAssembly 很快。
等等,所以什么是 WebAssembly ?
WebAssembly 是一种使 JavaScript 以外的编程语言编写的代码能够在浏览器中运行的技术。所以当人们在讨论 WebAssembly 运行之快的时候, 实际上是在和JavaScript 进行对比。
现在,我不会暗示说这是一个非此即彼的情况——你要么使用 WebAssembly 或者是 JavaScript。事实上,我们期望开发者能够在一个应用中同时使用 WebAssembly 与 JavaScript。
但是比较这两者还是很有用处的,它能够让我们了解 WebAssembly 带来的潜在影响。
关于性能的一点历史
JavaScript 创造于 1995。它并非被设计成一门以快为目的的语言,并且在头十年,它的确不快。
然后浏览器开始变得更有竞争力了。
在2008 年,被人们称作性能大战的时期开始了。各种浏览器加入了实时编译器,也被称为 JIT。在 JavaScript 运行的时候,JIT 能够分析出其中的模式并基于这些模式让代码更快地运行。
这些 JIT 的引入使得 JavaScript 的性能迎来了一个拐点。JS 的执行快了十倍甚至更多。
随着性能的提示,JavaScript 开始被用于原本谁都预想不到的地方,比如用 Node.js 实现服务端的编程。性能的提升使得 JavaScript 可以被用于解决新的种类的问题。
有了 WebAssembly,或许我们正处于另外一个拐点。
那么,让我们深入细节,理解 WebAssembly 为什么这么快的原因。
背景:
当下的 WebAssembly :
未来的 WebAssembly :
关于
Lin 是 Mozilla Developer Relations 团队的一名工程师。 She 专注于 JavaScript, WebAssembly, Rust, 以及 Servo,同时也绘制一些关于编码的漫画。