Node.js和io.js性能差异巨大

io.js是Node.js的一个分支。近日,一名具有20多年软件开发经验的工程师Michael Schöbel通过一组测试比较了两者的性能

\\

他分别使用io.js和Node.js实现了质数查找算法“埃拉托斯特尼筛法(Sieve of Eratosthenes)”,并且每一种实现又有三种实现形式,分别使用了常规数组、“类型数组(typed-array)”和buffer。

\\

io.js和Node.js有一个重要的共同点,就是它们都基于Chrome的V8 JavaScript引擎。但它们基于不同的V8版本。在本次测试中,Schöbel使用了Node 0.10.35和io.js 1.0.2,都是最新版本。

\\

他在相同的环境下将每一种实现形式执行7次,然后取平均执行时间,结果如下(单位为秒):

\\\
 \\t\t\t

Node.js 0.10.35

\\t\t\t
\\t\t\t

io.js 1.0.2

\\t\t\t
\\t\t\t

Buffer

\\t\t\t
\\t\t\t

4.259

\\t\t\t
\\t\t\t

5.006

\\t\t\t
\\t\t\t

Typed-Array

\\t\t\t
\\t\t\t

4.944

\\t\t\t
\\t\t\t

11.555

\\t\t\t
\\t\t\t

Regular Array

\\t\t\t
\\t\t\t

40.416

\\t\t\t
\\t\t\t

7.359

\\t\t\t

从中可以看出:

\\
  • 类型数组和常规数组性能差异巨大;\\t
  • 使用buffer时,io.js用时比Node.js长18%;\\t
  • 使用类型数组时,io.js用时是Node.js的2倍多;\\t
  • 使用常规数组时,Node.js用时是io.js的5倍多。\

对于这个结果,Schöbel表示:

\\
  • 这不是一个专业的综合性的测试,该测试所用的算法与现实开发中的用法可能完全不同;\\t
  • 由于两种框架基于不同的V8 JavaScript引擎,所以这个测试实际上也比较了V8的不同版本;\\t
  • 如果一个项目大量使用CPU,并且部署在AWS或Azure这样的服务器上,那么选择合适的Node.js/io.js版本可以降低成本。\

最后请谨记:务必使用不同版本的Node.js/io.js测试代码。

\\

感谢郭蕾对本文的审校。

\\

给InfoQ中文站投稿或者参与内容翻译工作,请邮件至editors@cn.infoq.com。也欢迎大家通过新浪微博(@InfoQ)或者腾讯微博(@InfoQ)关注我们,并与我们的编辑和其他读者朋友交流。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值