首頁 > 軟體

php高效能應用伺服器roadrunner

2021-05-26 02:31:01

對於php很多人對它又愛又恨,喜歡它的簡潔,入門上手快,討厭它的效能不夠高。雖然php一直在努力提升自己的效能,並且php7在效能上得到了大幅的提升,但是因為是指令碼語言,因為每次執行都需要進行解釋,所以php在效能上和編譯語言還是有很大的差距的。

如果php可以每次執行不需要重新進行解釋,如果php可以讓程序常駐記憶體,那麼是不是php的效能會得到大幅提升呢,答案是肯定的,而且現實中已經有解決方案出現,它就是現在很多追求效能的php公司都在使用的swoole擴展,有了swoole,php可以常駐記憶體,可以直接處理web響應請求,php的效能得到巨大提升。

傳統運行方式

我們知道傳統的php運行方式是通過php-fpm進行管理,然後和nginx進行通訊,nginx負責處理靜態資源,而php動態內容的處理由nginx分配給php-fpm進行處理,而php-fpm選擇相應的php程序進行處理,返回結果。

roadrunnner運行模式

不同於傳統的運行模式,roadrunner運行模式相當於把nginx和php-fpm進行了整合,所有的請求直接交給roadrunner進行處理,而php程序負責和roadrunner進行通訊。

roadrunner是由golang開發的,我們都知道golang提供了gorutine,它只需要很小的記憶體就可以啟動非常多的協程,這對於併發非常有幫助,而使用了roadrunner作為php的伺服器,php又在效能上得到了大幅提升。

roadrunner的優點

支援擴展跨平臺高效能安裝簡單支援佇列支援grpc效能對比

雖然roadrunner一定程度上提升了php的併發性,但是和golang以及swoole相比還是有很大的差距的,下面的圖表我們可以看出來,swoole在效能上對php的提升是非常巨大的。

總結

既然單純的roadunner還是無法滿足我們對效能的要求,那麼我們就可以使用swoole+roadrunner的組合來提升我們應用程式的效能。

很多時候總有人在說php是不是過時了,php是不是要消亡了,php是不是沒有學習的必要了,我想說的是,從目前來看,php的社群依然在發展,php的技術大會依然每年都會召開,php的版本依然每年都有新的迭代。

一門語言停止前行的唯一原因就是它自己放棄了自己,而php它沒有放棄自己,它一直在努力改變著自己。有人會說php一直在抄襲模仿,沒有自己的創新,我們說的是,一個肯不斷接受新知識的語言永遠不會過時。


IT145.com E-mail:sddin#qq.com