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 很快。