巔峯性能對決:Node.js vs io.js v2.0.0

我們注意到 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


配置

像之前一樣,下面測試綜合了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(最新發布的版本)。

測試使用 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%的速度提升。結果還不錯,不過我們有更多的東西可以測試。


Express.js

Express 曾經且依然是快速構建一個 web項目後端的大衆選擇。 上次我們也介紹了一下他的性能表現,讓我們看下它在 node 0.12 與 io.js v2.0.0 中表現如何:

2

  測試結果 io.js v2.0.0 要快 4.5% – 在一個老框架上很不錯了 (要知道 JS 的生態變化很快啊)!


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

許多新框架正在爭奪 JS 輕型框架的一席之地,這裏我們對一些比較受歡迎的進行基準測試,其一就是Koa.js,它正是 Express.js 的作者所寫。

使用 Koa 最大的好處是可以使用 ES6 的特性-包括使用 generators 和 yield 語法開啓異步代碼(不用該死的回調)。這個基準測試使用[node --harmony]參數啓動。涉及一個簡單路由的邏輯,並輸出一段 HTML。

讓我們觀察 Koa 在 Node 和 io.js 上的運行情況:

3-2

從 Node 到 io.js 最新版本上有14.8%的速度提升-差距很大。如果你看過最新的 JS 後端框架,顯而易見 io.js 有了相當的性能改進。當在一個 VM 集羣運行 Node,根據規模,這個提升也許能少用幾臺機器及相應的設施成本 - 全都免費。

錯誤跟蹤

我們十分喜歡 Raygun 的性能改進,如果你有在產品中使用 io.js 或 Node 的經驗歡迎隨時在評論中發表。另外我們有一個強大的Node 錯誤跟蹤的實現 - 獲取30天免費試用期。不斷改進,讓錯誤遠離!


注:本文內容轉自開源中國!

更多好文章請關注:www.kingrein.com


發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章