首頁  >  文章  >  web前端  >  為你的Node應用程式選擇最佳的JS引擎

為你的Node應用程式選擇最佳的JS引擎

青灯夜游
青灯夜游轉載
2020-09-08 12:25:561901瀏覽

為你的Node應用程式選擇最佳的JS引擎

Node.js 正在快速的發展。目前 Node.js 8 已經發布。同時,基於 ChakraCore 的 Node.js 版本也正在積極開發中。

【影片教學推薦:node js教學 】

原文是:The recent Node.js v8 version (not to be mistaken with V8, the JavaScript engine) has just been published.

原作者使用了Node.js v8 version 這個詞,為此作者專門在括號中解釋了這裡的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.

請注意,當引用Node.js 發布版本時,我們已經在Node.js 8 中刪除了「v」。先前的版本通常被稱為 v0.10,v0.12,v4,v6 等。為了避免與 V8 JavaScript 引擎混淆,我們放棄了 “v” 並稱之為 Node.js 8。
所以,Node.js v8 版本應該直接稱為 Node.js 8。

由於 Node.js 使用的 JavaScript引擎不知道什麼時候會引入新功能,開發者們都像明確的知道不同引擎在效能方面的表現優劣。

我們對以下幾個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 參數(V8 5.5.372.43)
  • Node.js 8.0 (V8 5.8.283.41)
  • Node. js 8.0 使用--turbo --ignition 參數(V8 5.8.283.41)
  • Node.js 8.0 (ChaKraCore 2.0.0.0) (使用2 種不同的建構版本)

你可以透過這個簡單的

視覺化工具

查看不同版本對於不同特性的效能。

在這些結果中,如果你使用的是 Node.js 8,你也可以查看開啟

--turbo --ignition

參數後的 javascript 效能。

Context

雖然 V8 是 Node.js 使用的預設 JavaScript 引擎,但是 Node.js 提供了一個通用的平台,允許開發者選擇不同的 JavaScript 引擎。

Node.js 8 的發布非常令人興奮,並且是社群內的一件大事。該平台已附帶一套全新功能。此外,開發者最關注的就是效能。 了解哪種 JavaScript 引擎最適合運行應用程式將成為一項非常有用的技能。在本文中,我們將看到 V8 和 ChakraCore 的不同版本在效能上的優劣。 方式

要比較不同 Node.js 版本之間的基準測試,我選擇了 35 種具有代表性的 JavaScript 程式碼模式。他們中的大多數都是從

Colin Ihrig’s ‘will it optimize’

的 repo 中獲取的。這些模式已經在前面的文章(

Optimize your Node app by simply upgrading Node.js

)中討論過了。

對於每個模式,分別使用了每個不同版本的 Node.js 運行 10 次、100 次、1000 次、10000次和 10000 次。透過允許這些程式碼,我們呢可以了解每個引擎如何進行運行時常規最佳化和熱函數(hot function)最佳化。 為你的Node應用程式選擇最佳的JS引擎基準測試沒有考慮垃圾收集(GC)事件的數量。這意味著如果修改分配給每個進程的內存,則實驗的結果可能會不同。

結果

#########在 ###這個頁面### 可以查看完整的測試結果。透過分析這個結果,我們可以發現 ChakraCore 的 Node.js 版本比基於 V8 的版本慢。 ###

此外,在大多数情况下,随着时间的迁移 V8 变得越来越高效。Ignition 和 Turbofan 优化架构很显著地提升了性能。 Node.js 8 随 V8 5.8 发布,但是 默认并没有启用。 Node.js 的未来版本将随着启用了 Ignition 和 Turbofan 的 V8 5.9(也可能是 5.6)一起提供。

结论

这个基准测试非常有趣,我计划在将来增加更多的 Node.js 版本和更多的代码模式。作为Sqreen 的 Node.js 工程师,我非常关心性能。

(译注:后面还有 4 端内容,大部分都是原作者的广告,就不翻译了)

最后推荐作者开发的这个强大的性能可视化对比工具:Picking the best JS engine for your Node app’s performance 还有我的讲座:前端程序员应该懂点 V8 知识

英文原文地址:https://blog.sqreen.com/javascript-engine-performance/

更多编程相关知识,可访问:编程教学!!

以上是為你的Node應用程式選擇最佳的JS引擎的詳細內容。更多資訊請關注PHP中文網其他相關文章!

陳述:
本文轉載於:segmentfault.com。如有侵權,請聯絡admin@php.cn刪除