Node.JS vs PHP CLI Server 簡單的HTTP伺服器效能測試
來源:互聯網
上載者:User
環境:64位Ubuntu14.04,i5-3230M
PHP5.4.31 with ZendOPcache
Node.JS 0.10.35
//t.js
var http = require('http');
http.createServer(function (req, res) {
res.writeHead(200, {'Content-Type': 'text/html;charset=UTF-8'});
res.write('Node測試'+new Date().getTime()+'');
res.end();
}).listen(8082, '127.0.0.1');
運行程式:
node t.js
查看系統CPU空閑率:
sar 1
壓力測試,並發100,完成10萬請求:
ab -c100 -n100000 http://127.0.0.1:8082/t.js
記憶體從11MB漲到61MB,系統CPU空閑率65%,
RPS達到6049.
提示:點擊圖片,查看原圖。
//t.php
PHP測試
運行程式:
php -S 127.0.0.1:8081 -t ./
查看系統CPU空閑率:
sar 1
壓力測試,並發100,完成10萬請求:
ab -c100 -n100000 http://127.0.0.1:8081/t.php
記憶體從19.6MB漲到20.0MB,系統CPU空閑率57%,
RPS達到
11405.
結論:Node.JS和PHP CLI Server都是單進程處理 HTTP 要求,RPS上PHP幾乎是Node.JS的兩倍,記憶體佔用上PHP卻只有Node.JS的1/3。Node.JS值得稱道的是,系統CPU空閑率要比PHP高8%左右。另外,PHP-FPM雖然不支援HTTP協議,但其處理PHP請求的效能並不會比PHP CLI Server差,而且PHP-FPM可以開啟多個背景工作處理序,充分利用多核。