为你的Node应用程序选择最佳的JS引擎

为你的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)优化。

基准测试没有考虑垃圾收集(GC)事件的数量。 这意味着如果修改分配给每个进程的内存,则实验的结果可能会不同。

结果

1.png

在 这个页面 可以查看完整的测试结果。通过分析这个结果,我们可以发现 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引擎的详细内容,更多请关注【创想鸟】其它相关文章!

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌抄袭侵权/违法违规的内容, 请发送邮件至253000106@qq.com举报,一经查实,本站将立刻删除。

发布者:PHP中文网,转转请注明出处:https://www.chuangxiangniao.com/p/2635265.html

(0)
上一篇 2025年3月7日 04:41:38
下一篇 2025年2月25日 03:30:32

AD推荐 黄金广告位招租... 更多推荐

相关推荐

  • Node和React中如何进行实时通信?

    教程推荐:node js教程、React教程、WebSocket教程 Web 为了支持客户端和服务器之间的全双工(或双向)通信已经走过了很长的路。这是 WebSocket 协议的主要目的:通过单个 TCP 套接字连接在客户端和服务器之间提供…

    2025年3月7日
    200
  • 使用Node.js+Chrome+Puppeteer实现网站的爬取

    视频教程推荐:nodejs 教程 我们将学到什么? 在本教程中,您将学习如何使用 JavaScript 自动化和清理 web 。要做到这一点,我们将使用 Puppeteer 。Puppeteer是一个允许我们控制无头Chrome 的 Nod…

    2025年3月7日 编程技术
    200
  • Node.js设置允许跨域的方法

    nodejs如何设置允许跨域?下面本篇文章就来给大家介绍一下设置方法。有一定的参考价值,有需要的朋友可以参考一下,希望对大家有所帮助。 相关推荐:《nodejs视频教程》 设置允许所有域名跨域: app.all(“*”,function(r…

    2025年3月7日
    200
  • node.js创建简单聊天室的方法介绍

    使用nodejs如何创建一个简单聊天室?下面本篇文章给大家介绍一下。有一定的参考价值,有需要的朋友可以参考一下,希望对大家有所帮助。 相关推荐:《nodejs视频教程》 刚刚开始学js,本文是基于node.js和websocket实现一个简…

    2025年3月7日 编程技术
    200
  • vue node 是什么

    vue是一套用于构建用户界面的渐进式JavaScript框架,vue采用自底向上增量开发的设计;而node是基于谷歌Chrome的JavaScript引擎构建的服务器端平台,是一个开源的跨平台运行时环境,用于开发服务器端和网络应用程序。 本…

    2025年3月7日
    200
  • 分享vscode中定位node模块的插件:vscode-goto-node-modules

    相关推荐:《vscode教程》、《vscode教程》 在使用 VSCode 开发 Node.js (包括 node 端和前端 Vue/Angle/React) 等开发时,经常与遇到一个很痛苦的事: 依赖一个模块时想大概浏览一下这个模块的源码…

    2025年3月7日
    200
  • 比较一下nodejs中间件Koa和Express

    相关推荐:《nodejs 教程》 说到中间件,很多开发者都会想到 Koa.js,其中间件设计无疑是前端中间件思想的典型代表之一。 最近重新温习这部分内容,按奈不住想要和各位看官聊聊其中绝妙! Koa用起来非常方便——比之express,它“…

    2025年3月7日
    200
  • 怎么测试node有没有安装好

    测试node有没有安装好的方法:首先使用组合键【win+r】打开运行窗口,进入cmd命令窗口;然后使用cd命令进入nodejs安装目录;最后输入“node -v”命令,如果输出node.js的版本号,则安装成功。 本文操作环境:Window…

    2025年3月7日
    200
  • 一文快速了解Nodejs中crypto模块的用法

    crypto是node.js中实现加密和解密的模块,下面本篇文章带大家了解一下crypto模块,介绍一下利用crypto模块进行散列(哈希)算法、hmac算法、对称加密、非对称加密的方法。 1. crypto crypto是node.js中…

    2025年3月7日 编程技术
    200
  • node Express学习之聊聊中间件

    本篇文章带大家了解一下node中express的中间件,介绍一下中间件的概念、中间件分类,希望对大家有所帮助! Express是一个简洁而灵活的Web应用程序开发框架,可以用来快速地搭建一个功能完整的Web应用程序;作为一个基于Node.j…

    2025年3月7日
    200

发表回复

登录后才能评论