编者注:io.js成为热门话题,其性能也是关注的热点,看到Raygun团队进行了 Node.js 和 io.js的测试比较,翻译出来供大家参考~
你可能已经知道Raygun在接收奔溃报告数据的接口使用了Node.JS(我们还用Node.JS做了奔溃报告应用)。 Raygun每秒有超过 110,000 个请求,所以接口的性能很重要。
你可能不知道,最近Node.js在社区里变成两个分支:node.js和io.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 |
胜者
现在, io.js在这里表现出更好的性能。 同时,Node.js在慢慢改进,这是件伟大的事情。 我认为,随着新竞争的出现,我们将看到更多的改进。
另一个值得注意的是Express。 Express的是一个超级强大的框架,但如果你只是用它的路由功能,可能无法体它的价值(例如API)。
目前,io.js是相当新的,甚至它的维护团队也不提倡生产使用。但我们会密切注视io.js并测试开发团队建议的方案。
英文原文 Node.js performance: Node.js vs io.js
由SegmentFault整理编译
**粗体** _斜体_ [链接](http://example.com) `代码` - 列表 > 引用
。你还可以使用@
来通知其他用户。