您好,登錄后才能下訂單哦!
這篇文章將為大家詳細(xì)講解有關(guān)如何為您的Node性能選擇最佳的JS引擎,小編覺(jué)得挺實(shí)用的,因此分享給大家做個(gè)參考,希望大家閱讀完這篇文章后可以有所收獲。
Node.js 正在飛速的發(fā)展。目前 Node.js 8 已經(jīng)發(fā)布。同時(shí),基于 ChakraCore 的 Node.js 版本也正在積極開發(fā)中。
原作者使用了 Node.js v8 version 這個(gè)詞,為此作者專門在括號(hào)中解釋了這里的 V8 不是 javascript 引擎 V8,而是 Node.js 的版本。但是在 Node.js 官方博文 Node v8.0.0 (Current) 中有一段注釋:
Note that, when referring to Node.js release versions, we have dropped the "v" in Node.js 8. Previous versions were commonly referred to as v0.10, v0.12, v4, v6, etc. In order to avoid confusion with V8, the underlying JavaScript engine, we've dropped the "v" and call it Node.js 8.
請(qǐng)注意,當(dāng)引用 Node.js 發(fā)布版本時(shí),我們已經(jīng)在 Node.js 8 中刪除了 “v”。以前的版本通常被稱為 v0.10,v0.12,v4,v6 等。為了避免與 V8 JavaScript 引擎混淆,我們放棄了 “v” 并將其稱為 Node.js 8。
所以,Node.js v8 版本應(yīng)該直接稱為 Node.js 8。
由于 Node.js 使用的 JavaScript 引擎不知道什么時(shí)候會(huì)引入新功能,開發(fā)者們都像明確的知道不同引擎在性能方面的性能優(yōu)劣。
我們對(duì)以下幾個(gè) Node.js 版本做了性能評(píng)估:
Node.js 6.10.1 (V8 5.1.281.95)* Node.js 7.10 (V8 5.5.372.43)
Node.js 7.10 使用 --turbo --ignition 參數(shù) (V8 5.5.372.43)
Node.js 8.0 (V8 5.8.283.41)
Node.js 8.0 使用 --turbo --ignition 參數(shù) (V8 5.8.283.41)
Node.js 8.0 (ChaKraCore 2.0.0.0) (使用 2 種不同的構(gòu)建版本)
你可以通過(guò)這個(gè)簡(jiǎn)單的 [可視化工具][6] 查看不同版本對(duì)于不同特性的性能影響。
在這些結(jié)果中,如果你使用的是 Node.js 8,你還可以查看開啟 --turbo--ignition
參數(shù)后的 javascript 性能。
雖然 V8 是 Node.js 使用的默認(rèn) JavaScript 引擎,但是 Node.js 提供了一個(gè)通用的平臺(tái),允許開發(fā)者選擇不同的 JavaScript 引擎。
Node.js 8 的發(fā)布非常令人興奮,并且是社區(qū)內(nèi)的一件大事。該平臺(tái)已附帶一套全新功能。此外,開發(fā)者最關(guān)注的就是性能。
了解哪種 JavaScript 引擎最適合運(yùn)行應(yīng)用程序?qū)⒊蔀橐豁?xiàng)非常有用的技能。 在本文中,我們將看到 V8 和 ChakraCore 的不同版本在性能方面的優(yōu)劣。
要比較不同 Node.js 版本之間的基準(zhǔn)測(cè)試,我選擇了有代表意義的 35 種 JavaScript 代碼模式。他們中的大多數(shù)都是從 Colin Ihrig’s ‘will it optimize’ 的 repo 中獲取的。這些模式已經(jīng)在前面的文章(Optimize your Node app by simply upgrading Node.js)中討論過(guò)了。
對(duì)于每個(gè)模式,分別使用了每個(gè)不同版本的 Node.js 運(yùn)行 10 次、100 次、1000 次、10000次和 10000 次。 通過(guò)允許這些代碼,我們呢可以了解每個(gè)引擎如何進(jìn)行運(yùn)行時(shí)常規(guī)優(yōu)化和熱函數(shù)(hot function)優(yōu)化。
基準(zhǔn)測(cè)試沒(méi)有考慮垃圾收集(GC)事件的數(shù)量。 這意味著如果修改分配給每個(gè)進(jìn)程的內(nèi)存,則實(shí)驗(yàn)的結(jié)果可能會(huì)不同。
在這個(gè)頁(yè)面可以查看完整的測(cè)試結(jié)果。通過(guò)分析這個(gè)結(jié)果,我們可以發(fā)現(xiàn) ChakraCore 的 Node.js 版本比基于 V8 的版本慢。
此外,在大多數(shù)情況下,隨著時(shí)間的遷移 V8 變得越來(lái)越高效。Ignition 和 Turbofan 優(yōu)化架構(gòu)很顯著地提升了性能。 Node.js 8 隨 V8 5.8 發(fā)布,但是默認(rèn)并沒(méi)有啟用。 Node.js 的未來(lái)版本將隨著啟用了 Ignition 和 Turbofan 的 V8 5.9(也可能是 5.6)一起提供。
關(guān)于“如何為您的Node性能選擇最佳的JS引擎”這篇文章就分享到這里了,希望以上內(nèi)容可以對(duì)大家有一定的幫助,使各位可以學(xué)到更多知識(shí),如果覺(jué)得文章不錯(cuò),請(qǐng)把它分享出去讓更多的人看到。
免責(zé)聲明:本站發(fā)布的內(nèi)容(圖片、視頻和文字)以原創(chuàng)、轉(zhuǎn)載和分享為主,文章觀點(diǎn)不代表本網(wǎng)站立場(chǎng),如果涉及侵權(quán)請(qǐng)聯(lián)系站長(zhǎng)郵箱:is@yisu.com進(jìn)行舉報(bào),并提供相關(guān)證據(jù),一經(jīng)查實(shí),將立刻刪除涉嫌侵權(quán)內(nèi)容。