看漫画,学 WebAssembly

本文讲的是看漫画,学 WebAssembly,

WebAssembly 运行得很快,你可能已经听说过这个了。但是是什么让 WebAssembly 这么快呢?

在这个系列的文章里,我想和你解释一下为什么 WebAssembly 这么快。

等等,WebAssembly 究竟是什么?

WebAssembly 是一种用 JavaScript 以外的编程语言编写的代码并在浏览器中运行该代码的方法。因此当人们说 WebAssembly 运行得很快的时候,通常他们都是在和 JavaScript 进行比较。

现在,我不想暗示这是一个二选一的情况 —— 你要么用 WebAssembly 或者用 JavaScript。事实上,我们期望开发者能够在同一个应用里面同时使用 WebAssembly 和 JavaScript。

但是比较一下这二者是非常有用的,你可以因此理解 WebAssembly 将会具有的潜在影响。

一点性能历史

JavaScript 创建于 1995 年。它不是为了快而设计的,并且在最初前十年,它并不快。

然后浏览器之间的竞争开始变得愈演愈烈。

在 2008 年,人们所谓的“性能战争”时期开始了。很多浏览器都添加了即时编译器 —— 也叫做 JIT。当 JavaScript 运行时,JIT 可以看到模式(pattern)并且基于这些模式(pattern)让代码运行得更快。

这些 JIT 的引入致使 JavaScript 的性能进入了一个转折点。JS 的执行速度快了 10 倍。

看漫画,学 WebAssemblyA graph showing JS execution performance increasing sharply in 2008

通过这种性能的改善,JavaScript 开始被用于没有人期望用它来做的一些事情上。例如使用 Node.js 进行服务端编程。性能的改善使得在一个全新的问题上使用 JavaScript 成为了可能。

伴随着 WebAssembly,我们现在可能正处于另一个转折点。

看漫画,学 WebAssemblyA graph showing another performance spike in 2017 with a question mark next to it

因此,让我们深入细节之中,来理解是什么使得 WebAssembly 很快。






原文发布时间为:2017年3月14日

本文来自云栖社区合作伙伴掘金,了解相关信息可以关注掘金网站。