1. ngx_lua nodejs php 比較
我在研究一陣子ngx_lua以後發現lua語法和js真的很像,同時ngx_lua模型也是單線程的異步的事件驅動的,工做原理和nodejs相同,代碼甚至比nodejs的異步回調更好寫一些。
性能測試,100併發php:17400nodejs:31197ngx_lua:32628php
單純作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可能會掛,可能源於多線程對內存資源的佔用是不可測的。