<ruby id="bdb3f"></ruby>

    <p id="bdb3f"><cite id="bdb3f"></cite></p>

      <p id="bdb3f"><cite id="bdb3f"><th id="bdb3f"></th></cite></p><p id="bdb3f"></p>
        <p id="bdb3f"><cite id="bdb3f"></cite></p>

          <pre id="bdb3f"></pre>
          <pre id="bdb3f"><del id="bdb3f"><thead id="bdb3f"></thead></del></pre>

          <ruby id="bdb3f"><mark id="bdb3f"></mark></ruby><ruby id="bdb3f"></ruby>
          <pre id="bdb3f"><pre id="bdb3f"><mark id="bdb3f"></mark></pre></pre><output id="bdb3f"></output><p id="bdb3f"></p><p id="bdb3f"></p>

          <pre id="bdb3f"><del id="bdb3f"><progress id="bdb3f"></progress></del></pre>

                <ruby id="bdb3f"></ruby>

                合規國際互聯網加速 OSASE為企業客戶提供高速穩定SD-WAN國際加速解決方案。 廣告
                # Nginx/Golang/Swoole/Node.js的性能對比 通過ab工具分別壓測nginx swoole node.js golang的http server,并觀察結果。 web server都是輸出一行It work! 硬件環境是一臺8G/4核酷睿I5CPU的筆記本電腦,型號是Thinkpad T430. ``` Nginx ab -c 100 -n 100000 http://localhost/index.html Swoole ab -c 100 -n 100000 http://127.0.0.1:8848/ Node.js ab -c 100 -n 100000 http://127.0.0.1:8080/ Golang ab -c 100 -n 100000 http://127.0.0.1:8080/ ``` 本次測試使用的軟件版本如下: ``` nginx version: nginx/1.2.6 (Ubuntu) go version go1.1.1 linux/amd64 swoole-1.5.4 node.js-0.11.3-pre ``` 代碼在./code目錄中。 QPS對比 ----- ``` Nginx: Requests per second: 23770.74 [#/sec] (mean) Golang: Requests per second: 21807.00 [#/sec] (mean) Swoole: Requests per second: 19711.22 [#/sec] (mean) Node.js: Requests per second: 6680.53 [#/sec] (mean) ``` 內存占用對比 ----- Golang 運行多次壓測后內存從2920K上升至5580K,再繼續壓測不會上升 Node.js運行多次后內存一直在漲,懷疑有輕微內存泄露。從開始運行的5930K,到最后的6060K。 Nginx的4個worker進程,內存占用一直穩定在820K。 Swoole的主進程內存占用一直穩定在3200K,多次壓測內存占用沒有任何增加。Worker進程的內存有小幅增加。 通過設置Swoole的max_request參數,worker進程的生命周期是可以控制的,生命周期結束后會自動回收所有內存,所以輕微的內存泄露問題也不大。 > 測試時間為2013年,最新版本已解決內存泄漏問題 TCP長連接的維持能力 ----- Nginx、Golang、Swoole、node.js都是使用epoll/kqueue作為事件輪詢機制的。維持多少長連接與程序代碼本身沒有任何關系,取決于操作系統的內存大小。 結果評價 ----- Nginx、Golang、Swoole都是多線程Reactor的,可以充分利用多核,所以成績是node.js的數倍。 Swoole中的PHP代碼需要編譯為opcode來執行,每條opcode都是一次函數調用。語言的執行效率效率比C語言(Nginx),Golang這種編譯型的語言差一些。 Node.js的http模塊不是多線程的,無法利用多核,結果最差。這里并不是說node.js的性能差,使用第三方的node擴展cluster也可以使node.js變成多進程。 > 在最新的swoole-1.7.6+版本中,基準壓力測試swoole無論是短連接還是長連接,均已超過了Golang。在下一個版本發布后,將會重新發布性能測試報告。
                  <ruby id="bdb3f"></ruby>

                  <p id="bdb3f"><cite id="bdb3f"></cite></p>

                    <p id="bdb3f"><cite id="bdb3f"><th id="bdb3f"></th></cite></p><p id="bdb3f"></p>
                      <p id="bdb3f"><cite id="bdb3f"></cite></p>

                        <pre id="bdb3f"></pre>
                        <pre id="bdb3f"><del id="bdb3f"><thead id="bdb3f"></thead></del></pre>

                        <ruby id="bdb3f"><mark id="bdb3f"></mark></ruby><ruby id="bdb3f"></ruby>
                        <pre id="bdb3f"><pre id="bdb3f"><mark id="bdb3f"></mark></pre></pre><output id="bdb3f"></output><p id="bdb3f"></p><p id="bdb3f"></p>

                        <pre id="bdb3f"><del id="bdb3f"><progress id="bdb3f"></progress></del></pre>

                              <ruby id="bdb3f"></ruby>

                              哎呀哎呀视频在线观看