js出了個nodejs,我們技術老大前段時間發了個技術郵件說php支持多線程,異步,非阻塞 還打著旗號說要滅掉nodejs,官方網站上說swoole的性能已經最少也和nodejs可以媲美了,這個需要用數據說話,周末的時候有空就順手測試了一下這兩個東東!下面是測試報告哈。
首先我用127.0.0.1:8000端口測試swoole, 用127.0.0.1:1337測試nodejs
有圖有真相:(稍後傳,不會用mac把截圖保存!汗!各位看客有誰會的教教我哈!編程都變傻了)
測試環境:
處理器:2.7GHz i7
內存:16GB 1600hz DDR3
系統 MAC OS X
先放測試結果:
1.PHPswoole的測試結果:
~mysql|? ab -n 5000 -c 100 http://127.0.0.1:8000/ This is ApacheBench, Version 2.3 <$Revision: 655654 $> Copyright 1996 Adam Twiss, Zeus Technology Ltd, http://www.zeustech.net/ Licensed to The Apache Software Foundation, http://www.apache.org/ Benchmarking 127.0.0.1 (be patient) Completed 500 requests Completed 1000 requests Completed 1500 requests Completed 2000 requests Completed 2500 requests Completed 3000 requests Completed 3500 requests Completed 4000 requests Completed 4500 requests Completed 5000 requests Finished 5000 requests Server Software: Server Hostname: 127.0.0.1 Server Port: 8000 Document Path: / Document Length: 0 bytes Concurrency Level: 100 Time taken for tests: 1.411 seconds Complete requests: 5000 Failed requests: 0 Write errors: 0 Total transferred: 55330 bytes HTML transferred: 0 bytes Requests per second: 3543.00 [#/sec] (mean) Time per request: 28.225 [ms] (mean) Time per request: 0.282 [ms] (mean, across all concurrent requests) Transfer rate: 38.29 [Kbytes/sec] received Connection Times (ms) min mean[+/-sd] median max Connect: 0 3 1.2 3 7 Processing: 17 25 16.7 23 143 Waiting: 1 9 12.9 7 136 Total: 20 28 16.6 26 143 Percentage of the requests served within a certain time (ms) 50% 26 66% 27 75% 27 80% 27 90% 28 95% 29 98% 141 99% 142 100% 143 (longest request)
~mysql|? ab -n 5000 -c 100 http://127.0.0.1:1337/ This is ApacheBench, Version 2.3 <$Revision: 655654 $> Copyright 1996 Adam Twiss, Zeus Technology Ltd, http://www.zeustech.net/ Licensed to The Apache Software Foundation, http://www.apache.org/ Benchmarking 127.0.0.1 (be patient) Completed 500 requests Completed 1000 requests Completed 1500 requests Completed 2000 requests Completed 2500 requests Completed 3000 requests Completed 3500 requests Completed 4000 requests Completed 4500 requests Completed 5000 requests Finished 5000 requests Server Software: Server Hostname: 127.0.0.1 Server Port: 1337 Document Path: / Document Length: 12 bytes Concurrency Level: 100 Time taken for tests: 1.215 seconds Complete requests: 5000 Failed requests: 0 Write errors: 0 Total transferred: 565000 bytes HTML transferred: 60000 bytes Requests per second: 4116.49 [#/sec] (mean) Time per request: 24.293 [ms] (mean) Time per request: 0.243 [ms] (mean, across all concurrent requests) Transfer rate: 454.26 [Kbytes/sec] received Connection Times (ms) min mean[+/-sd] median max Connect: 0 0 0.6 0 5 Processing: 2 24 21.0 21 175 Waiting: 2 24 20.8 21 174 Total: 6 24 20.9 21 175 Percentage of the requests served within a certain time (ms) 50% 21 66% 22 75% 23 80% 24 90% 26 95% 32 98% 159 99% 170 100% 175 (longest request)
PHP和nodejs成績都還不錯,關鍵是Swoole的環境我用了--debug導致有很多命令會輸出,暫時有不會改回去,(稍後在公司測試環境重新測試下)
Time taken for tests: 1.411 seconds 共耗時
Requests per second: 3543.00 [#/sec] (mean)
nodeJS
Time taken for tests: 1.215 seconds 共耗時
Requests per second: 4116.49 [#/sec] (mean)
從測試結果來看,雖然swoole的測試數據稍微遜色了一點,但是這並不影響我對swoole的看法(況且配置可能不是很好),我覺的對於一個C語言編寫的PHP,這個已經比我們目前的環境要好的多了。