BT

如何利用碎片时间提升技术认知与能力? 点击获取答案

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

| 作者 谢丽 关注 10 他的粉丝 发布于 2015年1月23日. 估计阅读时间: 2 分钟 | 如何结合区块链技术,帮助企业降本增效?让我们深度了解几个成功的案例。

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次,然后取平均执行时间,结果如下(单位为秒):

 

Node.js 0.10.35

io.js 1.0.2

Buffer

4.259

5.006

Typed-Array

4.944

11.555

Regular Array

40.416

7.359

从中可以看出:

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

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

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

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


感谢郭蕾对本文的审校。

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

评价本文

专业度
风格

您好,朋友!

您需要 注册一个InfoQ账号 或者 才能进行评论。在您完成注册后还需要进行一些设置。

获得来自InfoQ的更多体验。

告诉我们您的想法

允许的HTML标签: a,b,br,blockquote,i,li,pre,u,ul,p

当有人回复此评论时请E-mail通知我

看到这个标题我就进来了 by Fu Cheng

特意到原文就看了一下,首先关于作者:“Im still pretty new to JavaScript and Node...”。关于性能的结果:“Performance of Node's master branch was within 2% of what I measured for io.js 1.0.2.”。

只从一个简单的方面来测试2个的性能是不太合理的。

测试不可靠 by Yaphet Darion

之比较一个筛法测试 过于片面了吧

我就知道是标题党 by wen bob

同一个项目的不同分支,哪来的魔术能让它们有巨大差异?

允许的HTML标签: a,b,br,blockquote,i,li,pre,u,ul,p

当有人回复此评论时请E-mail通知我

允许的HTML标签: a,b,br,blockquote,i,li,pre,u,ul,p

当有人回复此评论时请E-mail通知我

3 讨论

登陆InfoQ,与你最关心的话题互动。


找回密码....

Follow

关注你最喜爱的话题和作者

快速浏览网站内你所感兴趣话题的精选内容。

Like

内容自由定制

选择想要阅读的主题和喜爱的作者定制自己的新闻源。

Notifications

获取更新

设置通知机制以获取内容更新对您而言是否重要

BT