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

编者注:io.js成为热门话题,其性能也是关注的热点,看到Raygun团队进行了 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

胜者

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

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

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

我来评几句
登录后评论

已发表评论数()