摘要:性能簡史在年,被創(chuàng)造出來時并不是沖著性能去的。而且在之后的十年發(fā)展中,它的性能一直是很低的。的引入成就了性能提升的一個轉(zhuǎn)折點(diǎn),其執(zhí)行速度比以往快了之多。性能提升也使得在全新的問題上使用成為可能?,F(xiàn)在,極可能是下一個性能轉(zhuǎn)折點(diǎn)。
你可能已經(jīng)聽說 WebAssembly 代碼跑起來非常快。
但是你知道這是為什么嗎?在本系列文章中,我們將探究其原因。
WebAssembly 是一種技術(shù),該技術(shù)能讓除 JavaScript 以外的代碼運(yùn)行在瀏覽器上。
所以,當(dāng)人們說 WebAssembly 很快時,其實(shí)是在拿它跟 JavaScript 比較。
這里,我并不是在暗示你要么使用 JavaScript,要么使用 WebAssembly 。
反而,我更希望開發(fā)者能夠把它們兩結(jié)合起來使用。
不過拿這兩貨來比較一下還是很有意義的,這樣我們才能理解 WebAssembly 具備的潛力。
JS 性能簡史在 1995 年,JavaScript 被創(chuàng)造出來時并不是沖著性能去的。
而且在之后的十年發(fā)展中,它的性能一直是很低的。
后來,隨著瀏覽器變得越來越流行,JavaScript 也受到了越來越多的關(guān)注。
在 2008 年,性能之戰(zhàn)開始了。多款瀏覽器都加上了即時編譯器(Just-in-time Compiler),即 JIT 。
當(dāng) JavaScript 代碼運(yùn)行時,JIT 能夠觀察其運(yùn)行模式,然后根據(jù)這些模式讓代碼跑的過快。
JIT 的引入成就了 JavaScript 性能提升的一個轉(zhuǎn)折點(diǎn),其執(zhí)行速度比以往快了 10 之多。
乘著這波性能提升的節(jié)奏,JavaScript 也開始涉足之前想都不敢想的領(lǐng)域,比如催生了用于服務(wù)端編程的 Node.js 。性能提升也使得在全新的問題上使用 JavaScript 成為可能。
現(xiàn)在,WebAssembly 極可能是下一個性能轉(zhuǎn)折點(diǎn)。
所以,你是否愿意跟隨本系列文章深入探討 WebAssembly 呢?
以下是后續(xù)文章鏈接:
相關(guān)背景
圖說 WebAssembly(二):JIT 編譯器
圖說 WebAssembly(三):什么是匯編
WebAssembly 現(xiàn)狀
圖說 WebAssembly(四):快速入門
圖說 WebAssembly(五):高性能原因
WebAssembly 未來
圖說 WebAssembly(六):現(xiàn)狀與展望
文章版權(quán)歸作者所有,未經(jīng)允許請勿轉(zhuǎn)載,若此文章存在違規(guī)行為,您可以聯(lián)系管理員刪除。
轉(zhuǎn)載請注明本文地址:http://systransis.cn/yun/94724.html
摘要:現(xiàn)狀年月日,主流的四大瀏覽器達(dá)成了共識并宣布的最小可行產(chǎn)品已經(jīng)完成。更快的函數(shù)調(diào)用當(dāng)前,在中調(diào)用函數(shù)比想象的要慢。直接操作目前,沒有任何方式能夠操作。這就導(dǎo)致了部分應(yīng)用可能會因此而推遲發(fā)布時間。結(jié)束現(xiàn)如今已經(jīng)相當(dāng)快速。 本文是圖說 WebAssembly 系列文章的最后一篇。如果您還未閱讀之前的文章,建議您從第一篇入手。 現(xiàn)狀 2017 年 2 月 28 日,主流的四大瀏覽器達(dá)成了共識...
摘要:為了更好的理解,我們有必要去先理解什么是匯編,以及編譯器是如何產(chǎn)生匯編的。什么是匯編現(xiàn)在,我們來看看外星人的大腦是如何工作的。這些注釋就是匯編,也稱為符號機(jī)器碼。結(jié)束以上的內(nèi)容就是什么是匯編以及它是如何從高級編程語言翻譯過來的。 本文是圖說 WebAssembly 系列文章的第三篇。如果您還未閱讀之前的文章,建議您從第一篇入手。 為了更好的理解 WebAssembly ,我們有必要去先...
摘要:本文是圖說系列文章的第五篇。這樣的話,使用的開發(fā)者也不需要做任何適配,但是它們卻能獲得更高性能。該圖并不是用來準(zhǔn)確的衡量其性能的。運(yùn)行編寫出高性能的代碼是可能的。這種清理工作由引擎自動進(jìn)行,稱為垃圾回收。 本文是圖說 WebAssembly 系列文章的第五篇。如果您還未閱讀之前的文章,建議您從第一篇入手。 在上一篇文章中,我們說到了使用 WebAssembly 和 JavaScript...
摘要:本文是圖說系列文章的第四篇。它們表示一種可以在普遍流行機(jī)器上高效使用的指令集合。這是因?yàn)槭且环N稱為堆棧機(jī)器。盡管是根據(jù)堆棧機(jī)器來設(shè)計的,但是這并不是它在真實(shí)物理機(jī)器上工作的方式。這些內(nèi)容稱為段。 本文是圖說 WebAssembly 系列文章的第四篇。如果您還未閱讀之前的文章,建議您從第一篇入手。 WebAssembly 是一種使得除 JavaScript 以外的編程語言也能運(yùn)行在網(wǎng)頁上...
摘要:編譯器優(yōu)缺點(diǎn)與解釋器相比,編譯器有著相反的優(yōu)缺點(diǎn)。它們?yōu)橐嫘略隽艘粋€組件,稱為監(jiān)視器,或者。優(yōu)化編譯器會基于監(jiān)視器記錄的代碼運(yùn)行信息來作出一些判斷。通常來說,優(yōu)化編譯器會使得代碼跑的更快。而這正是優(yōu)化編譯器所做的優(yōu)化之一。 本文是圖說 WebAssembly 系列文章的第二篇,如果你還沒閱讀其它的,建議您從第一篇開始。 JavaScript 的運(yùn)行,一開始是很慢的,但是后面會變得越來...
閱讀 1340·2019-08-30 15:44
閱讀 1391·2019-08-29 18:42
閱讀 446·2019-08-29 13:59
閱讀 784·2019-08-28 17:58
閱讀 2825·2019-08-26 12:02
閱讀 2425·2019-08-23 18:40
閱讀 2418·2019-08-23 18:13
閱讀 3118·2019-08-23 16:27