Node.js 性能比较: Node.js vs io.js

简介: 你可能已经知道Raygun在接收奔溃报告数据的接口使用了Node.JS(我们还用Node.JS做了奔溃报告应用)。 Raygun每秒有超过 110,000 个请求,所以接口的性能很重要。你可能不知道,最近Node.js在社区里变成两个分支:node.js和io.js。

你可能已经知道Raygun在接收奔溃报告数据的接口使用了Node.JS(我们还用Node.JS做了奔溃报告应用)。 Raygun每秒有超过 110,000 个请求,所以接口的性能很重要。

你可能不知道,最近Node.js在社区里变成两个分支:node.jsio.js

虽然有很多关于io.js的讨论,其中一个关注点是Chrome V8 升级的实现。 目前的版本仍然使用Node相对较老的引擎,谷歌完全不支持。

这使人好奇,影响性能的因素是什么?我和同事一起进行了探究。


测试

我们只测试每秒请求。 为此,我们以发出请求和接收响应为基准。

  • 空白Express程序——使用Express中间件,返回一个基本的“Hello World”响应。
  • 原生程序——不使用中间件,返回一个基本的“Hello World”响应。

我们跑了20000个批试验,算出平均吞吐量。

测试基于:

1.Node 0.10.25

2.Node 0.10.36

3.Node 0.12.0

4.io.js 1.20

重要提示:我们还没有做任何聚合,这是一个运行在同一机器上的ApacheBench的简单Node进程。 你应该能够聚合后测出硬件相关的性能。 这毕竟是一个微基准。


结果

  Express.js RPS Raw HTTP RPS
Node 0.10.25 2079 3010
Node 0.10.36 1940 2813
Node 0.12.0 2002 2872
io.js 1.20 2200 3152

image.png

胜者

现在, io.js在这里表现出更好的性能。 同时,Node.js在慢慢改进,这是件伟大的事情。 我认为,随着新竞争的出现,我们将看到更多的改进。

另一个值得注意的是Express。 Express的是一个超级强大的框架,但如果你只是用它的路由功能,可能无法体它的价值(例如API)。

目前,io.js是相当新的,甚至它的维护团队也不提倡生产使用。但我们会密切注视io.js并测试开发团队建议的方案。

相关文章
|
7月前
|
JavaScript 前端开发 IDE
TypeScript vs. JavaScript:技术对比与核心差异解析
TypeScript 作为 JavaScript 的超集,通过静态类型系统、编译时错误检测和强大的工具链支持,显著提升代码质量与可维护性,尤其适用于中大型项目和团队协作。相较之下,JavaScript 更灵活,适合快速原型开发。本文从类型系统、错误检测、工具支持等多维度对比两者差异,并提供技术选型建议,助力开发者合理选择。
1343 1
|
7月前
|
JavaScript 前端开发 安全
【逆向】Python 调用 JS 代码实战:使用 pyexecjs 与 Node.js 无缝衔接
本文介绍了如何使用 Python 的轻量级库 `pyexecjs` 调用 JavaScript 代码,并结合 Node.js 实现完整的执行流程。内容涵盖环境搭建、基本使用、常见问题解决方案及爬虫逆向分析中的实战技巧,帮助开发者在 Python 中高效处理 JS 逻辑。
|
Web App开发 JavaScript 前端开发
Node.js 是一种基于 Chrome V8 引擎的后端开发技术,以其高效、灵活著称。本文将介绍 Node.js 的基础概念
Node.js 是一种基于 Chrome V8 引擎的后端开发技术,以其高效、灵活著称。本文将介绍 Node.js 的基础概念,包括事件驱动、单线程模型和模块系统;探讨其安装配置、核心模块使用、实战应用如搭建 Web 服务器、文件操作及实时通信;分析项目结构与开发流程,讨论其优势与挑战,并通过案例展示 Node.js 在实际项目中的应用,旨在帮助开发者更好地掌握这一强大工具。
527 1
|
存储 缓存 监控
如何使用内存监控工具来优化 Node.js 应用的性能
需要注意的是,不同的内存监控工具可能具有不同的功能和特点,在使用时需要根据具体工具的要求和操作指南进行正确使用和分析。
696 158
|
监控 JavaScript 算法
如何使用内存监控工具来定位和解决Node.js应用中的性能问题?
总之,利用内存监控工具结合代码分析和业务理解,能够逐步定位和解决 Node.js 应用中的性能问题,提高应用的运行效率和稳定性。需要耐心和细致地进行排查和优化,不断提升应用的性能表现。
697 174
|
12月前
|
存储 JavaScript 前端开发
在NodeJS中使用npm包进行JS代码的混淆加密
总的来说,使用“javascript-obfuscator”包可以帮助我们在Node.js中轻松地混淆JavaScript代码。通过合理的配置,我们可以使混淆后的代码更难以理解,从而提高代码的保密性。
1156 9
|
JSON 缓存 负载均衡
Node.js 的性能
Node.js 的性能
445 12
|
存储 JavaScript NoSQL
Node.js新作《循序渐进Node.js企业级开发实践》简介
《循序渐进Node.js企业级开发实践》由清华大学出版社出版,基于Node.js 22.3.0编写,包含26个实战案例和43个上机练习,旨在帮助读者从基础到进阶全面掌握Node.js技术,适用于初学者、进阶开发者及全栈工程师。
303 9
|
JavaScript 索引
【Node.js】4.从一个例子切入Node js的规范
在开始之前,需要明确的一点就是,   ①Node应用是由模块组成的,每一个文件都是一个模块,有自己的作用域。   ②在这个文件里定义的变量,函数,类都是私有的,对其他的文件不可见。   ③在一个文件中,也就是在一个模块内,module代表本模块,是一个对象   ④如果想给别的模块用本模块的东西,可以将本模块的部分通过设定为【module.
954 0