性能对决:Node.js vs io.js v2.0.0 已翻译 100%

oschina 投递于 2015/05/12 14:54 (共 6 段, 翻译完成于 05-14)
阅读 9831
收藏 47
4
加载中

我们注意到 io.js v2.0.0 RC 版公告中有些有趣的内容。这个社区版的 Node.js 同样基于 V8 引擎实现,而且主版本提交的频率远高于它的父项目(Node.js)。

就像我们之前提到的,之前我们热衷于用 Node.js 开发了 Raygun API,以确保在高负载情况下达到尽可能短的响应时间,给我们的用户提供最佳的服务。之前的一片博客比较了一下 Node.js 与 io.js的性能,后来 io.js V2 版本发布了,我们准备重温下不同情况下的性能测试。
node-vs-io 2

Frank_mc
Frank_mc
翻译于 2015/05/13 16:15
1

配置

像之前一样,下面测试综合了micro-benchmarks, caveat emptor, huge grain of salt 等等。不论如何,下面的图表提供了几个有趣的结果,值得思考一番,也给你自己的实地测试提供一个参考,而且以后你可能会获得一个显著的速度提升。

测试环境为:64-bit Ubuntu VM ApacheBench。配置为以100个并发运行20000个请求,结果为5次运行的平均值。

我们测试了2个版本的 node 跟2个版本的 io.js。node 是v0.10.38(0.10分支的最新版本)跟v0.12.2(现有最新的版本)

io.js 我们比较了v1.8.1(1.x分支的最新版本)与v2.0.0(最新发布的版本)。

Frank_mc
Frank_mc
翻译于 2015/05/13 17:37
1

测试使用 http module 创建了一个简单的服务器,设置其在请求时返回一个 JSON。结果如下:

1

有趣的是,我们注意到 node 从0.10到0.12性能下降了, 而 io.js 1.x 分支与 node 0.10 相当,但是v2.0.0 就高出了很多。

当返回一个 Raw 格式响应时, 该测试显示 io.js v2.0.0 比 node 0.12要快14%! 他们都比自己的前一个版本有了5%的速度提升。结果还不错,不过我们有更多的东西可以测试。

Frank_mc
Frank_mc
翻译于 2015/05/13 19:06
1

Express.js

Express 曾经且依然是快速构建一个 web 项目后端的大众选择。 上次我们也介绍了一下他的性能表现,让我们看下它在 node 0.12 与 io.js v2.0.0 中表现如何:

2

  测试结果 io.js v2.0.0 要快 4.5% – 在一个老框架上很不错了 (要知道 JS 的生态变化很快啊)!

Frank_mc
Frank_mc
翻译于 2015/05/13 19:50
1

Koa.js 在 Node 和 io.js 上的比较

许多新框架正在争夺 JS 轻型框架的一席之地,这里我们对一些比较受欢迎的进行基准测试,其一就是Koa.js,它正是 Express.js 的作者所写。

使用 Koa 最大的好处是可以使用 ES6 的特性-包括使用 generators 和 yield 语法开启异步代码(不用该死的回调)。这个基准测试使用[node --harmony]参数启动。涉及一个简单路由的逻辑,并输出一段 HTML。

你敲代码像cxk
你敲代码像cxk
翻译于 2015/05/13 20:48
2

让我们观察 Koa 在 Node 和 io.js 上的运行情况:

3-2

从 Node 到 io.js 最新版本上有14.8%的速度提升-差距很大。如果你看过最新的 JS 后端框架,显而易见 io.js 有了相当的性能改进。当在一个 VM 集群运行 Node,根据规模,这个提升也许能少用几台机器及相应的设施成本 - 全都免费。

错误跟踪

我们十分喜欢 Raygun 的性能改进,如果你有在产品中使用 io.js 或 Node 的经验欢迎随时在评论中发表。另外我们有一个强大的 Node 错误跟踪的实现 - 获取30天免费试用期。不断改进,让错误远离!

你敲代码像cxk
你敲代码像cxk
翻译于 2015/05/13 21:22
1
本文中的所有译文仅用于学习和交流目的,转载请务必注明文章译者、出处、和本文链接。
我们的翻译工作遵照 CC 协议,如果我们的工作有侵犯到您的权益,请及时联系我们。
加载中

评论(29)

incca
incca

引用来自“周星星”的评论

图表有点坑
同感
__JM_Joy__
__JM_Joy__
乌龟和乌龟比赛跑
高耳鸡
高耳鸡

引用来自“大猛0403”的评论

不是说要合并了么

引用来自“开源中国匿名会员”的评论

不是已经开始合并了吗: Node.js Foundation - node.js & io.js Convergence https://github.com/jasnell/dev-policy https://github.com/nodejs/node

引用来自“Raphael_goh”的评论

你确定能打开?

引用来自“开源中国匿名会员”的评论

打不开我发上来干啥。我又不是 @eechen ,百度出来不带验证就贴的人。
你和他什么仇什么怨😳
高耳鸡
高耳鸡

引用来自“大猛0403”的评论

不是说要合并了么

引用来自“开源中国匿名会员”的评论

不是已经开始合并了吗: Node.js Foundation - node.js & io.js Convergence https://github.com/jasnell/dev-policy https://github.com/nodejs/node

引用来自“Raphael_goh”的评论

你确定能打开?

引用来自“vivid”的评论

骚年,这里是天朝

引用来自“牛仔豆”的评论

能打开
联通打开挺快的,公司电信打不开
牛仔豆
牛仔豆

引用来自“大猛0403”的评论

不是说要合并了么

引用来自“开源中国匿名会员”的评论

不是已经开始合并了吗: Node.js Foundation - node.js & io.js Convergence https://github.com/jasnell/dev-policy https://github.com/nodejs/node

引用来自“Raphael_goh”的评论

你确定能打开?

引用来自“vivid”的评论

骚年,这里是天朝
能打开
吾爱
吾爱
dart咋样
0Scn
0Scn
Joyent把IaaS/PaaS云平台那套做基础层的思维强加给Node,方向都是错的,他都没搞明白世界人民为何喜欢Node且喜欢拿Node来做啥。想攒bug,一年两载来个统一大修,憋大招,做基础层的银弹一统全世界?呵呵。高吞吐主要得益于事件驱动的异步,执行性能主要受益于V8,你不紧跟V8的迭代节奏适应时代的发展,难不成在憋一个甩V8几条街的引擎?就国内来说,不妨看看阿里、腾讯这些渐进式的局部性的换Node来做些什么,人家会大刀阔斧的把基础层换Node吗?呵呵。期待Node基金会早日掌夺大权,过渡期别太久了,赞io.js这活得明白又勤奋的孩子,傻逼又贪婪的Joyent。
vivid
vivid

引用来自“大猛0403”的评论

不是说要合并了么

引用来自“开源中国匿名会员”的评论

不是已经开始合并了吗: Node.js Foundation - node.js & io.js Convergence https://github.com/jasnell/dev-policy https://github.com/nodejs/node

引用来自“Raphael_goh”的评论

你确定能打开?
骚年,这里是天朝
周星星
周星星
图表有点坑
返回顶部
顶部