高性能Web服務端 PHP vs Node.js vs Nginx-Lua 的對比分析


1. ngx_lua nodejs php 比較

 

我在研究一陣子ngx_lua之后發現lua語法和js真的很像,同時ngx_lua模型也是單線程的異步的事件驅動的,工作原理和nodejs相同,代碼甚至比nodejs的異步回調更好寫一些。

性能測試,100並發php:17400nodejs:31197ngx_lua:32628

單純做http代理服務器加上一些簡單的邏輯,似乎ngx_lua的方案更加合適。 引自: PHP vs Node.js vs Nginx-Lua

 

以下是從占用的資源上來分析:
出自:phpnode lua 由圖中可以看出:
nodejs占用CPU比lua高一些,
nodejs與ngx_lua二者占用內存不變(在處理同一業務邏輯時),php占用內存不穩定(可能跟多線程有關,連接數越多,內存占用越多)

下面猿友對ngix_lua的一些看法:

 

xueyangkk

其實這樣考慮是對的 ! ngx_lua是基於nginx的擴展 nginx已經有無數家驗證過 他確實是個可靠的WEB應用。而且ngx_lua 已經有很多廣泛的應用 可以說技術上來說已經很成熟了,你們的平台是一個OPANAPI的應用 。所以 在這個上 選ngx_lua 是對的 !當然這並不是說NODE不好 !語言沒什么好壞 !只能從成本 技術成熟度來考慮 !

jayceefun

之前使用過章大神openresty, 確實很值得一試, 比node.js易用, 沒有那么裸, 做的各種性能優化也都是c級別的, 剛出時也是號稱並發超過node.js的. lua確實是很快, 據說是腳本語言里最快的了. 不過也有缺點就是lua的文件處理很弱, 各種庫非常的少, 記得當初的想要個好點的orm都沒有, 還得手寫. 同意樓主說的lua某種程度上真的是跟js很像啊, 當初轉型node.js語言上也基本沒費多少勁. 推薦一個用lua完全模仿node.js寫的一個東西, 叫luvit, 現在完全不成熟, 只有些簡單的http server功能, 但是基礎的性能測試結果是比node.js快2倍還是4倍來的, 很恐怖啊有木有.

 

結論:
並發請求數lua/nodejs相當,均比php快一倍
資源占用上lua最少,nodejs次之,二者對內存並不貪婪,php占用最多且不穩定。

 

2. nodejs python php 比較

 

國外某猿友做過一個關於php/nodejs/go/scala/python之間的性能比較:API Programming Language Bake-off
以下測試用例為使用mongodb添加刪除數據時,各個語言每秒處理的最大請求數:
由上圖可以看出,在並發線程達到一定程度時go和php寫的測試腳本都掛了(go不是號稱最快嗎?)

 

另外兩位中國猿友的評測,也證明了這一點,
1. 測了一下nodejs和php性能
2. 單服務器node.js和php性能測試
在他們的結論中node.js的並發處理能力均二倍於php.

 

結論:
在一般情況下python和node.js的處理能力相當,均2倍於php, 在並發數達到一定程序時,php可能會掛,可能源於多線程對內存資源的占用是不可測的。
 
 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM