歡迎來到Linux教程網
Linux教程網
Linux教程網
Linux教程網
您现在的位置: Linux教程網 >> UnixLinux >  >> Linux編程 >> Linux編程

Node.js 和 io.js - 在性能上很不同

對於相同的代碼你可能會遇到的性能相差5倍以上,這取決於你使用的是node還是io.js。

首先,讓我說的更明白點。這不是也不可能是綜合測試。每一個引用都是不一樣的。我的發現可能或者不可能使用與你的案例,這取決於你的Node引用是做什麼的。

我的測試

在前面的文章中,我使用C,JAVA,Javascript和FreePascal測試了一個很簡單的算法性能尋找prime-numbers和Sieve of Eratosthenes。為了測試Javascript,我基於Node選擇三種不同的實現算法,包括普通陣列,輸入陣列或緩沖。

今天我將使用相同的標准來說明node.js與io.js之間有多大的性能差距。對於你們中那些對io.js還不了解的人,io.js是node的一個分支。

我將使用在我前面文章中出現的相同的代碼。你們能夠在文章的結尾找到它。

Node和io.js有一個重要的共同點。他們都依賴於Chrome的V8 Javascript引擎。但是他們使用的是不同的V8版本。所以,當我們比較Node和IO.js的時候,其實我是比較他們使用的不同版本的Chrome V8 JavaScript引擎。

在我的前一個測試中,我用的Node0.10.32,因為這是我使用的Linux發新版OpenSUSE13.2自帶的。但是在今天的測試中,我將使用Node 0.10.35和io.js 1.0.2,因為他們是最新的發布版。是的,我知道io.js描述該版本為“不穩定”,但它是我唯一能獲取的版本。

以運行在Intel i7-4771 3.5GHz上的64位OpenSuse 13.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   (時間單位為秒)

如你所見,Node和io.js對typed-array和regular array性能的變化讓人瞠目。

操作buffer,io.js比Node.js多花18%的時間。對這個結果來說不好不壞,無需操心。

對type-array的測試結果顯示Node.js、io.js兩者差距顯著:後者所費時間超過前者的兩倍!

對regular array的測試卻得出了相反的結果,而且更加明顯:Node.js所費時間超過了io.js的5倍!

 它們性能差異如此之大讓我深感煩擾。作為如此成熟的產品,V8 JS引擎在不同版本上所表現的差異實在大。 我只能忍受性能伴隨版本更新一直提升的產品,但上述測試數據表明性能有可能適得其反,這實在不該發生。

結論

難決勝負!Node和io.js相互間時有趕超。但得牢記一點:這個小測試還和實際應用相差甚遠呢。

據我所悉,就連不同版本的Node都會有不同。曾記得一個開發版的Node在處理buffer的性能上卻有下降表現,參考issue on GitHub.

如果項目部署於AWS或Azure的多台server上,CPU開銷較重,那麼這個問題將十分重要。如果application在你所用的Node/io.js上的性能很差,那你得需要更多的server,這將讓你更費銀子。

本文濃縮成一句可取的話即:時刻牢記,測試你的代碼在不同版本Node/io.js上的性能

下面的內容更精彩

Ubuntu 14.04下搭建Node.js開發環境  http://www.linuxidc.com/Linux/2014-12/110983.htm

Ubunru 12.04 下Node.js開發環境的安裝配置 http://www.linuxidc.com/Linux/2014-05/101418.htm

Node.Js入門[PDF+相關代碼] http://www.linuxidc.com/Linux/2013-06/85462.htm

Node.js開發指南 高清PDF中文版 +源碼 http://www.linuxidc.com/Linux/2014-09/106494.htm

Node.js入門開發指南中文版 http://www.linuxidc.com/Linux/2012-11/73363.htm

Node.js安裝與配置 http://www.linuxidc.com/Linux/2013-05/84836.htm

Ubuntu 編譯安裝Node.js http://www.linuxidc.com/Linux/2013-10/91321.htm

Node.js 的詳細介紹:請點這裡
Node.js 的下載地址:請點這裡

Copyright © Linux教程網 All Rights Reserved