Node.js 和 io.js 效能對決
我們注意到 io.js v2.0.0 RC 版公告中有些有趣的內容。這個社群版的 Node.js 同樣基於 V8 引擎實現,而且主版本提交的頻率遠高於它的父專案(Node.js)。
就像我們之前提到的,之前我們熱衷於用 Node.js 開發了 Raygun API,以確保在高負載情況下達到儘可能短的響應時間,給我們的使用者提供最佳的服務。之前的一片部落格比較了一下 Node.js 與 io.js的效能,後來 io.js V2 版本釋出了,我們準備重溫下不同情況下的效能測試。
配置
像之前一樣,下面測試綜合了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。結果如下:
有趣的是,我們注意到 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 中表現如何:
測試結果 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 上的執行情況:
從 Node 到 io.js 最新版本上有14.8%的速度提升-差距很大。如果你看過最新的 JS 後端框架,顯而易見 io.js 有了相當的效能改進。當在一個 VM 叢集執行 Node,根據規模,這個提升也許能少用幾臺機器及相應的設施成本 – 全都免費。
相關文章
- Node.js與Io.js的效能比較Node.js
- Node.js 與 io.js v2.0.0的效能比較Node.js
- Node.js 分裂 開發者建立分支 io.jsNode.js
- Node.js與io.js那些事兒Node.js
- Node.js和io.js將合併到Node基金會下Node.js
- Lua、Luajit、Python、Node.js和Java效能測試對比PythonNode.jsJava
- 與Node.js分道揚鑣的io.js釋出1.0版Node.js
- 為什麼io.js要從Node.js中分裂出來?Node.js
- Node.js vs. Spring Boot:Hello World 效能對決,誰更快一點?Node.jsSpring Boot
- 從 Node.js 分裂出 Io.js 事件看開源軟體誰做主Node.js事件
- 使用 Dynatrace 對 Node.js 應用的效能資料進行分析Node.js
- Node.js和PHP執行機制對比Node.jsPHP
- TIDB和MySQL效能對比TiDBMySql
- truncate 和 delete 的效能對比delete
- PHP 和 Node.js 的10項對比挑戰PHPNode.js
- [譯]保持Node.js的速度-建立高效能Node.js Servers的工具、技術和提示Node.jsServer
- 比較Java與Node.js的併發性和效能- maxantJavaNode.js
- Nginx 和 Gunicorn 效能對比測試Nginx
- Flutter和原生應用效能對比Flutter
- redis和ssdb讀取效能對比Redis
- Django和Fastapi非同步效能對比DjangoASTAPI非同步
- Node.js鬧分裂:io.js計劃在2015年1月釋出第一個版本Node.js
- Node.js環境效能監控Node.js
- Java深度拷貝方式和效能對比Java
- mysql的innodb和myisam的dml效能對比MySql
- Node.js 和MongoDBNode.jsMongoDB
- 從測試資料來看Node.js和Java EE的效能區別Node.jsJava
- Netflix分享Node.js效能調優Node.js
- Go 和 Java 的效能對比,真的如此嗎?GoJava
- Serverless 對研發效能的變革和創新Server
- 分支對程式碼效能的影響和優化優化
- JavaScript 事件對記憶體和效能的影響JavaScript事件記憶體
- mysql刪除和更新操作對效能的影響MySql
- 支援ES6的IO.js 1.0.0釋出JS
- 沒有銀彈 NODE.JS效能未必就很高Node.js
- 提升 Node.js 應用效能的 5 個技巧Node.js
- 5 個快速的 Node.js 應用效能提示Node.js
- Node.js 中文亂碼解決Node.js