WebAssembly 运行得很快,你可能已经据说过这个了。可是是什么让 WebAssembly 这么快呢?git
在这个系列的文章里,我想和你解释一下为何 WebAssembly 这么快。github
WebAssembly 是一种用 JavaScript 之外的编程语言编写的代码并在浏览器中运行该代码的方法。所以当人们说 WebAssembly 运行得很快的时候,一般他们都是在和 JavaScript 进行比较。web
如今,我不想暗示这是一个二选一的状况 —— 你要么用 WebAssembly 或者用 JavaScript。事实上,咱们指望开发者可以在同一个应用里面同时使用 WebAssembly 和 JavaScript。编程
可是比较一下这两者是很是有用的,你能够所以理解 WebAssembly 将会具备的潜在影响。浏览器
JavaScript 建立于 1995 年。它不是为了快而设计的,而且在最初前十年,它并不快。编程语言
而后浏览器之间的竞争开始变得愈演愈烈。性能
在 2008 年,人们所谓的“性能战争”时期开始了。不少浏览器都添加了即时编译器 —— 也叫作 JIT。当 JavaScript 运行时,JIT 能够看到模式(pattern)而且基于这些模式(pattern)让代码运行得更快。翻译
这些 JIT 的引入导致 JavaScript 的性能进入了一个转折点。JS 的执行速度快了 10 倍。设计
经过这种性能的改善,JavaScript 开始被用于没有人指望用它来作的一些事情上。例如使用 Node.js 进行服务端编程。性能的改善使得在一个全新的问题上使用 JavaScript 成为了可能。code
伴随着 WebAssembly,咱们如今可能正处于另外一个转折点。
所以,让咱们深刻细节之中,来理解是什么使得 WebAssembly 很快。