所以,Node.js v8 版本應(yīng)該直接稱為 Node.js 8。
由于 Node.js 使用的 JavaScript引擎不知道什么時候會引入新功能,開發(fā)者們都像明確的知道不同引擎在性能方面的性能優(yōu)劣。
我們對以下幾個 Node.js 版本做了性能評估:
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)建版本)
你可以通過這個簡單的 可視化工具 查看不同版本對于不同特性的性能。
在這些結(jié)果中,如果你使用的是 Node.js 8,你還可以查看開啟 --turbo --ignition 參數(shù)后的 javascript 性能。
Context
雖然 V8 是 Node.js 使用的默認 JavaScript 引擎,但是 Node.js 提供了一個通用的平臺,允許開發(fā)者選擇不同的 JavaScript 引擎。
Node.js 8 的發(fā)布非常令人興奮,并且是社區(qū)內(nèi)的一件大事。該平臺已附帶一套全新功能。此外,開發(fā)者最關(guān)注的就是性能。
了解哪種 JavaScript 引擎最適合運行應(yīng)用程序?qū)⒊蔀橐豁椃浅S杏玫募寄堋?在本文中,我們將看到 V8 和 ChakraCore 的不同版本在性能方面的優(yōu)劣。
方式
要比較不同 Node.js 版本之間的基準(zhǔn)測試,我選擇了有代表意義的 35 種 JavaScript 代碼模式。他們中的大多數(shù)都是從 Colin Ihrig’s ‘will it optimize’ 的 repo 中獲取的。這些模式已經(jīng)在前面的文章(Optimize your Node app by simply upgrading Node.js)中討論過了。
對于每個模式,分別使用了每個不同版本的 Node.js 運行 10 次、100 次、1000 次、10000次和 10000 次。 通過允許這些代碼,我們呢可以了解每個引擎如何進行運行時常規(guī)優(yōu)化和熱函數(shù)(hot function)優(yōu)化。
基準(zhǔn)測試沒有考慮垃圾收集(GC)事件的數(shù)量。 這意味著如果修改分配給每個進程的內(nèi)存,則實驗的結(jié)果可能會不同。
結(jié)果
在 這個頁面 可以查看完整的測試結(jié)果。通過分析這個結(jié)果,我們可以發(fā)現(xiàn) ChakraCore 的 Node.js 版本比基于 V8 的版本慢。
此外,在大多數(shù)情況下,隨著時間的遷移 V8 變得越來越高效。Ignition 和 Turbofan 優(yōu)化架構(gòu)很顯著地提升了性能。 Node.js 8 隨 V8 5.8 發(fā)布,但是 默認并沒有啟用。 Node.js 的未來版本將隨著啟用了 Ignition 和 Turbofan 的 V8 5.9(也可能是 5.6)一起提供。
結(jié)論
這個基準(zhǔn)測試非常有趣,我計劃在將來增加更多的 Node.js 版本和更多的代碼模式。作為Sqreen 的 Node.js 工程師,我非常關(guān)心性能。
(譯注:后面還有 4 端內(nèi)容,大部分都是原作者的廣告,就不翻譯了)
最后推薦作者開發(fā)的這個強大的性能可視化對比工具:Picking the best JS engine for your Node app’s performance 還有我的講座:前端程序員應(yīng)該懂點 V8 知識。
英文原文地址:https://blog.sqreen.com/javascript-engine-performance/
更多編程相關(guān)知識,可訪問:編程教學(xué)!!
更多關(guān)于云服務(wù)器,域名注冊,虛擬主機的問題,請訪問西部數(shù)碼官網(wǎng):m.ps-sw.cn