通过漫画介绍WebAssembly

745 阅读2分钟

本文为翻译

原文标题:A cartoon intro to WebAssembly

原文作者:Lin Clark

原文地址:hacks.mozilla.org/2017/02/a-c…

WebAssembly 执行很快。你可能已经听说过了。但是什么因素让 WebAssembly 这么快呢?

通过这个系列文章,我想向你解释为什么 WebAssembly 很快。

等等,什么是 WebAssembly?

WebAssembly 是一种在浏览器中运行非 JavaScript 代码的方式。因此,当有人说 WebAssembly 很快时,他们是在和 JavaScript 作比较。

我并不是在暗示你 “这两者是非此即彼的” — 你要么使用 WebAssembly,要么使用 JavaScript 。事实上,我们希望开发者可以在一个应用程序中同时使用 WebAssembly 和 JavaScript。

但是将两者进行对比是有帮助的,这样你就能理解 WebAssembly 拥有的 潜在影响力。

一点点性能的历史

JavaScript 诞生于 1995 年。它并不是为了快速运行而设计出来的,而且在最初十年里它的运行速度确实不够快。

后来浏览器之间的竞争开始变得激烈。

在 2008 年,这个被大家称为 性能战争 的时期开始了。很多浏览器添加了 即时编译器(just-in-time compilers),也被称作 JIT。当 JavaScript 代码运行时,JIT 可以识别代码运行的模式,并基于这些模式来加速代码的运行。

由于 JIT 的出现,JavaScript 的性能迎来了一个拐点,JavaScript 的执行速度快了之前 10 倍。

随着性能的提高,JavaScript 开始被用于一些 令人难以预料 的领域,比如使用 Node.js 进行服务端编程。性能的提高使得 JavaScript 可以解决一类全新的问题。

而 WebAssembly 可能会带来另外另一个拐点。

image.png

那么,让我们来深入细节来理解是什么使得 WebAssembly 这么快。

背景

现在的 WebAssembly

未来的 WebAssembly