您好,登錄后才能下訂單哦!
這篇文章給大家分享的是有關如何提高PHP程序速度的內容。小編覺得挺實用的,因此分享給大家做個參考,一起跟隨小編過來看看吧。
最近發布了 Laravel Octane 包(https://github.com/laravel/octane)。 它的創建使 Laravel 對 Swoole 和 RoadRunner 更加友好。 我們在 dev.family 中使用 RoadRunner 而不是 php-fpm 已經有一段時間了, 我們決定分享我們的經驗并揭示它具有什么優勢。
RoadRunner 是一個用 Go 編寫的高性能、開源的 PHP 應用服務器。 與 php-fpm 的主要區別在于 RoadRunner 與 php 的常駐進程交互, 不像 php-fpm, 會在每次請求時創建并殺掉一個新的 php 進程。
常駐進程的優點:
沒有時間浪費在啟動上
沒有時間花費在創建數據庫的連接上
在進程中直接使用內存緩存的能力
這種方法的缺點是,它并不適合所有 PHP 應用程序,因為通常在編寫代碼時,會考慮到 PHP 進程在請求之后會終止。因此,您需要能夠監視內存泄漏,仔細處理全局狀態。因此,遺留項目可能不能在Roadrunner 上啟動。
然而,Roadrunner 還有其他有用的功能,比如靜態反饋、響應壓縮和平衡。典型捆綁包的功能都落在了 nginx 上。如果你使用的是 PHP Roadrunner,則可以在沒有它的情況下啟動該應用程序(nginx)。
RoadRunner 也很容易擴展。您可以將其組件用于您自己的應用程序服務器并獲得機會,例如,您可以使用 websockets 直接在 Go 上處理一些請求。
RoadRunner 本身不是一個新的開發項目,它已經有幾年的歷史了。但是,有了 Laravel Octane 的官方支持,您可以確定該框架已經準備好使用它。
我們在一個真實的項目上做了一個小測試,比較了 php-fpm 和 roadrunner 的速度。 結果如下:
php-fpm:
plain text: 1150 RPS
single query: 530 RPS
roadrunner:
plain text: 2200 RPS
single query: 1600 RPS
plain text -- 返回常量 JSON 的查詢
single query -- 將單個查詢的結果以 JSON 格式返回到數據庫的查詢
速度有顯提高,這是由于缺乏啟動時間和使用了與數據庫的永久連接。
感謝各位的閱讀!關于“如何提高PHP程序速度”這篇文章就分享到這里了,希望以上內容可以對大家有一定的幫助,讓大家可以學到更多知識,如果覺得文章不錯,可以把它分享出去讓更多的人看到吧!
免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。