Node.js 和 io.js - 在性能上很不同 已翻译 100%

oschina 投递于 2015/01/20 13:58 (共 5 段, 翻译完成于 01-21)
阅读 14125
收藏 35
4
加载中

tl;dr - Depending on whether you use Node.js or io.js, you may experience performance differ by a factor of more than 5 for identical code.

First of all, let me make something clear. This is not, and cannot be, a comprehensive test. Every application is different. Depending on what your Node application does, my findings may or may not apply to your use-case.

What I tested

In a previous article I tested the performance of a very simple algorithm for finding prime-numbers, theSieve of Eratosthenes, in C, Java, JavaScript and FreePascal. To test JavaScript I used Node and chose three different ways of implementing this algorithm, using a regular array, typed-array or buffer.

已有 1 人翻译此段
我来翻译

Today I want to use the same benchmark to show how much performance can vary betweenNode.js and io.js. For those of you who don't know it yet, io.js is a fork of Node.

I will use the same code as in my previous article. You can find it at the end of that article.

Node and io.js have one important thing in common. They both rely on Chrome'sV8 JavaScript Engine. But they use different versions of V8. So when I'm comparing Node and io.js, I'm actually comparing the different versions of Chrome's V8 JavaScript Engine they use.

For my previous test I used Node 0.10.32 as that is the one that comes with OpenSuse 13.2, the Linux distribution that I'm using. But for today's test I will use Node 0.10.35 and io.js 1.0.2 as these are the latest available releases. And yes, I am aware that io.js describes that release as "unstable". But it's all I've got. :)

已有 1 人翻译此段
我来翻译

Just as I did for my previous article, I ran each test 7 times and then used themedian time as my result. I was running the tests on an Intel i7-4771 3,5GHz using a 64-bit OpenSuse 13.2.

Here are the results:


Node.js 0.10.35io.js 1.0.2
Buffer4.2595.006
Typed-Array4.94411.555
Regular Array40.4167.359

(Times are listed in seconds)

As you can see, the performance for typed-array and regular array varies quite dramatically.

Using a buffer, io.js takes almost 18% longer than Node. Not nice to see, but not something to really worry about.

The typed-array test takes more than twice as long with io.js than with Node. Now that is a pretty significant difference.

But with regular arrays it is the other way around, and even more pronounced. Here Node takes more than 5x as long as io.js.

已有 1 人翻译此段
我来翻译

I must say that I'm quite disturbed by how much performance can differ. For such a mature product, the V8 JavaScript Engine shows way too much variation in performance between versions. I could live with that if performance would always increase with each version. But the data clearly shows that it can go either way. And that should not happen.

Conclusion

There is no clear winner. Sometimes Node is faster and sometimes io.js is. Also keep in mind that this test is far from anything you would do in real-life.

Even different versions of Node can behave differently in my experience. I remember that there was a regression with a development-version of Node which caused slow performance with buffers. See this issue on GitHub.

已有 1 人翻译此段
我来翻译

This can be extremely important if you have a project with heavy CPU-use and which scales to several servers on something like AWS or Azure. You could potentially be wasting a lot of money if your application performs poorly with the version of Node/io.js that you use. You could be needing more servers than necessary because of that.

If you take only one piece of information from this article, then let it be toalways remember to test how your code performs with different versions of Node/io.js.

已有 1 人翻译此段
我来翻译
本文中的所有译文仅用于学习和交流目的,转载请务必注明文章译者、出处、和本文链接。
我们的翻译工作遵照 CC 协议,如果我们的工作有侵犯到您的权益,请及时联系我们。
加载中

评论(85)

zhhw
zhhw
一篇翻译引发的血案,我真是再也不敢翻译了
散关清渭
散关清渭
这翻译的 真是够了
胖哒胖胖
胖哒胖胖

引用来自“双城记”的评论

OSC上翻译的大多数文章质量都非常非常渣。
翻译渣+文章内容渣

引用来自“久永”的评论

你弄个好翻译给我们看看?

引用来自“Raymin”的评论

>> 对于相同的代码你可能会遇到的性能相差5倍以上 第一句就是病句! 为翻译而翻译,和为让人看懂而翻译,会产生截然不同的结果。 不要动不动就不服气,反省是进步的捷径!

引用来自“zhhw”的评论

接受批评,英语的确很渣,以后一定更加认真对待这个翻译。

引用来自“久永”的评论

你的做法是对的,不用和他们这种素质的喷子多争执。 维护网络环境,每个读者都有责任~ 一句话,喷子死全家!

引用来自“金大胖”的评论

贱逼一枚,老子骂你也不会骂你父母,我和你不一样,动不动把父母拿出来骂!你本人是个贱逼,和你父母无关

引用来自“久永”的评论

你也承认自己骂人了吗? 你骂人了,别人还该听你的,什么能骂,什么不能骂?

引用来自“金大胖”的评论

骂我可以,你可以骂我,但是你个贱逼不要动不动就把父母拉出来骂!真是个贱逼一枚,但是我不骂你父母,你贱逼我不会牵扯其他人

引用来自“久永”的评论

第一,既然干了不道德的事,就不要怪别人不道德。 第二,我只是尖刻的打比方而已,我没有骂人,一开始就骂人的是你自己,不清楚可以看我们的互喷记录~

引用来自“金大胖”的评论

贱逼

引用来自“久永”的评论

谢谢你用语言证明我的观点~

引用来自“金大胖”的评论

我自己怎么样,关父母什么事,你个贱逼

引用来自“久永”的评论

你这不是让随便什么人都会回答你 ——要问他们怎么生的、怎么养的、怎么教的你吗? 唉……真没见过这么配合的人,算了,不欺负你了,到此为止吧~
你个贱逼,骂我可以,骂父母不行,想到此为止没这么容易。
胖哒胖胖
胖哒胖胖

引用来自“双城记”的评论

OSC上翻译的大多数文章质量都非常非常渣。
翻译渣+文章内容渣

引用来自“久永”的评论

你弄个好翻译给我们看看?

引用来自“Raymin”的评论

>> 对于相同的代码你可能会遇到的性能相差5倍以上 第一句就是病句! 为翻译而翻译,和为让人看懂而翻译,会产生截然不同的结果。 不要动不动就不服气,反省是进步的捷径!

引用来自“zhhw”的评论

接受批评,英语的确很渣,以后一定更加认真对待这个翻译。

引用来自“久永”的评论

你的做法是对的,不用和他们这种素质的喷子多争执。 维护网络环境,每个读者都有责任~ 一句话,喷子死全家!

引用来自“金大胖”的评论

贱逼一枚,老子骂你也不会骂你父母,我和你不一样,动不动把父母拿出来骂!你本人是个贱逼,和你父母无关

引用来自“久永”的评论

你也承认自己骂人了吗? 你骂人了,别人还该听你的,什么能骂,什么不能骂?

引用来自“金大胖”的评论

骂我可以,你可以骂我,但是你个贱逼不要动不动就把父母拉出来骂!真是个贱逼一枚,但是我不骂你父母,你贱逼我不会牵扯其他人

引用来自“久永”的评论

第一,既然干了不道德的事,就不要怪别人不道德。 第二,我只是尖刻的打比方而已,我没有骂人,一开始就骂人的是你自己,不清楚可以看我们的互喷记录~

引用来自“金大胖”的评论

贱逼

引用来自“久永”的评论

谢谢你用语言证明我的观点~

引用来自“金大胖”的评论

我自己怎么样,关父母什么事,你个贱逼

引用来自“久永”的评论

你这不是让随便什么人都会回答你 ——要问他们怎么生的、怎么养的、怎么教的你吗? 唉……真没见过这么配合的人,算了,不欺负你了,到此为止吧~
你是逼我骂你父母吗??你可以问父母是怎么养我教我生我的,但是你随口骂别人父母你就算贱逼!你如果只是嘲讽我可以,你个贱逼那别人父母真低贱啊你。还是你非要逼别人也把你父母拿出来骂???
屮殖
屮殖

引用来自“双城记”的评论

OSC上翻译的大多数文章质量都非常非常渣。
翻译渣+文章内容渣

引用来自“久永”的评论

你弄个好翻译给我们看看?

引用来自“Raymin”的评论

>> 对于相同的代码你可能会遇到的性能相差5倍以上 第一句就是病句! 为翻译而翻译,和为让人看懂而翻译,会产生截然不同的结果。 不要动不动就不服气,反省是进步的捷径!

引用来自“zhhw”的评论

接受批评,英语的确很渣,以后一定更加认真对待这个翻译。

引用来自“久永”的评论

你的做法是对的,不用和他们这种素质的喷子多争执。 维护网络环境,每个读者都有责任~ 一句话,喷子死全家!

引用来自“金大胖”的评论

贱逼一枚,老子骂你也不会骂你父母,我和你不一样,动不动把父母拿出来骂!你本人是个贱逼,和你父母无关

引用来自“久永”的评论

你也承认自己骂人了吗? 你骂人了,别人还该听你的,什么能骂,什么不能骂?

引用来自“金大胖”的评论

骂我可以,你可以骂我,但是你个贱逼不要动不动就把父母拉出来骂!真是个贱逼一枚,但是我不骂你父母,你贱逼我不会牵扯其他人

引用来自“久永”的评论

第一,既然干了不道德的事,就不要怪别人不道德。 第二,我只是尖刻的打比方而已,我没有骂人,一开始就骂人的是你自己,不清楚可以看我们的互喷记录~

引用来自“金大胖”的评论

贱逼

引用来自“久永”的评论

谢谢你用语言证明我的观点~

引用来自“金大胖”的评论

我自己怎么样,关父母什么事,你个贱逼
你这不是让随便什么人都会回答你 ——要问他们怎么生的、怎么养的、怎么教的你吗? 唉……真没见过这么配合的人,算了,不欺负你了,到此为止吧~
胖哒胖胖
胖哒胖胖

引用来自“双城记”的评论

OSC上翻译的大多数文章质量都非常非常渣。
翻译渣+文章内容渣

引用来自“久永”的评论

你弄个好翻译给我们看看?

引用来自“Raymin”的评论

>> 对于相同的代码你可能会遇到的性能相差5倍以上 第一句就是病句! 为翻译而翻译,和为让人看懂而翻译,会产生截然不同的结果。 不要动不动就不服气,反省是进步的捷径!

引用来自“zhhw”的评论

接受批评,英语的确很渣,以后一定更加认真对待这个翻译。

引用来自“久永”的评论

你的做法是对的,不用和他们这种素质的喷子多争执。 维护网络环境,每个读者都有责任~ 一句话,喷子死全家!

引用来自“金大胖”的评论

贱逼一枚,老子骂你也不会骂你父母,我和你不一样,动不动把父母拿出来骂!你本人是个贱逼,和你父母无关

引用来自“久永”的评论

你也承认自己骂人了吗? 你骂人了,别人还该听你的,什么能骂,什么不能骂?

引用来自“金大胖”的评论

骂我可以,你可以骂我,但是你个贱逼不要动不动就把父母拉出来骂!真是个贱逼一枚,但是我不骂你父母,你贱逼我不会牵扯其他人

引用来自“久永”的评论

第一,既然干了不道德的事,就不要怪别人不道德。 第二,我只是尖刻的打比方而已,我没有骂人,一开始就骂人的是你自己,不清楚可以看我们的互喷记录~

引用来自“金大胖”的评论

贱逼

引用来自“久永”的评论

谢谢你用语言证明我的观点~
我自己怎么样,关父母什么事,你个贱逼
胖哒胖胖
胖哒胖胖

引用来自“双城记”的评论

OSC上翻译的大多数文章质量都非常非常渣。
翻译渣+文章内容渣

引用来自“久永”的评论

你弄个好翻译给我们看看?

引用来自“双城记”的评论

这种强盗理论真是屡试不爽是吧? 评价菜好不好吃的前提我必须是个厨子?

引用来自“久永”的评论

我的意思是批评无用,有个差的翻译总强过没有,如果你觉得翻译太差,你可以给我个更好的翻译来看,我很感激,不一定一定要你自己翻译。如果只说别人不好,却不知别人努力与付出,这样的话只能是降低自己的品格~

引用来自“金大胖”的评论

我觉得我们楼下食堂的饭好难吃,莫非我要每天自己去食堂去做饭吃??

引用来自“久永”的评论

你可以不去吃,为啥药犯贱?也难怪,天天吃屎,只会喷粪!Osc没请你来,OK? ——我不是Osc的人,只是网上只会批评的蛆真是有碍观瞻,影响大家看技术文章。

引用来自“金大胖”的评论

你的意思是OSC请你来了???我也不是OSC的人。你的意思是只要看文章就不能批评了??谁TMD“网上只会批评了”,偶尔看一个不顺眼的不能批评了?你真是猪一样思想,只要不影响自己的利益就只会在那吃。

引用来自“久永”的评论

没请我来,我自己来了,但是我没犯贱喷主人家不好~没犯贱说人家做了翻译的不如自己啥都没做光会喷的~ 你为大家做的贡献在哪里?
我自己犯贱喷关我父母什么事,就事论事,我骂你,你可以骂我,看我不爽可以骂我,你个贱逼没事提父母,你就是经常这样把你父母拿出去骂的??
屮殖
屮殖

引用来自“双城记”的评论

OSC上翻译的大多数文章质量都非常非常渣。
翻译渣+文章内容渣

引用来自“久永”的评论

你弄个好翻译给我们看看?

引用来自“Raymin”的评论

>> 对于相同的代码你可能会遇到的性能相差5倍以上 第一句就是病句! 为翻译而翻译,和为让人看懂而翻译,会产生截然不同的结果。 不要动不动就不服气,反省是进步的捷径!

引用来自“zhhw”的评论

接受批评,英语的确很渣,以后一定更加认真对待这个翻译。

引用来自“久永”的评论

你的做法是对的,不用和他们这种素质的喷子多争执。 维护网络环境,每个读者都有责任~ 一句话,喷子死全家!

引用来自“金大胖”的评论

贱逼一枚,老子骂你也不会骂你父母,我和你不一样,动不动把父母拿出来骂!你本人是个贱逼,和你父母无关

引用来自“久永”的评论

你也承认自己骂人了吗? 你骂人了,别人还该听你的,什么能骂,什么不能骂?

引用来自“金大胖”的评论

骂我可以,你可以骂我,但是你个贱逼不要动不动就把父母拉出来骂!真是个贱逼一枚,但是我不骂你父母,你贱逼我不会牵扯其他人

引用来自“久永”的评论

第一,既然干了不道德的事,就不要怪别人不道德。 第二,我只是尖刻的打比方而已,我没有骂人,一开始就骂人的是你自己,不清楚可以看我们的互喷记录~

引用来自“金大胖”的评论

贱逼
谢谢你用语言证明我的观点~
胖哒胖胖
胖哒胖胖

引用来自“双城记”的评论

OSC上翻译的大多数文章质量都非常非常渣。
翻译渣+文章内容渣

引用来自“久永”的评论

你弄个好翻译给我们看看?

引用来自“Raymin”的评论

>> 对于相同的代码你可能会遇到的性能相差5倍以上 第一句就是病句! 为翻译而翻译,和为让人看懂而翻译,会产生截然不同的结果。 不要动不动就不服气,反省是进步的捷径!

引用来自“zhhw”的评论

接受批评,英语的确很渣,以后一定更加认真对待这个翻译。

引用来自“久永”的评论

你的做法是对的,不用和他们这种素质的喷子多争执。 维护网络环境,每个读者都有责任~ 一句话,喷子死全家!

引用来自“金大胖”的评论

贱逼一枚,老子骂你也不会骂你父母,我和你不一样,动不动把父母拿出来骂!你本人是个贱逼,和你父母无关

引用来自“久永”的评论

你也承认自己骂人了吗? 你骂人了,别人还该听你的,什么能骂,什么不能骂?

引用来自“金大胖”的评论

骂我可以,你可以骂我,但是你个贱逼不要动不动就把父母拉出来骂!真是个贱逼一枚,但是我不骂你父母,你贱逼我不会牵扯其他人

引用来自“久永”的评论

第一,既然干了不道德的事,就不要怪别人不道德。 第二,我只是尖刻的打比方而已,我没有骂人,一开始就骂人的是你自己,不清楚可以看我们的互喷记录~
贱逼
屮殖
屮殖

引用来自“双城记”的评论

OSC上翻译的大多数文章质量都非常非常渣。
翻译渣+文章内容渣

引用来自“久永”的评论

你弄个好翻译给我们看看?

引用来自“Raymin”的评论

>> 对于相同的代码你可能会遇到的性能相差5倍以上 第一句就是病句! 为翻译而翻译,和为让人看懂而翻译,会产生截然不同的结果。 不要动不动就不服气,反省是进步的捷径!

引用来自“zhhw”的评论

接受批评,英语的确很渣,以后一定更加认真对待这个翻译。

引用来自“久永”的评论

你的做法是对的,不用和他们这种素质的喷子多争执。 维护网络环境,每个读者都有责任~ 一句话,喷子死全家!

引用来自“金大胖”的评论

贱逼一枚,老子骂你也不会骂你父母,我和你不一样,动不动把父母拿出来骂!你本人是个贱逼,和你父母无关

引用来自“久永”的评论

你也承认自己骂人了吗? 你骂人了,别人还该听你的,什么能骂,什么不能骂?

引用来自“金大胖”的评论

骂我可以,你可以骂我,但是你个贱逼不要动不动就把父母拉出来骂!真是个贱逼一枚,但是我不骂你父母,你贱逼我不会牵扯其他人
第一,既然干了不道德的事,就不要怪别人不道德。 第二,我只是尖刻的打比方而已,我没有骂人,一开始就骂人的是你自己,不清楚可以看我们的互喷记录~
返回顶部
顶部