這篇文章將為大家詳細講解有關(guān)swoole比fpm快的原因,小編覺得挺實用的,因此分享給大家做個參考,希望大家閱讀完這篇文章后可以有所收獲。
成都創(chuàng)新互聯(lián)是專業(yè)的鹿泉網(wǎng)站建設(shè)公司,鹿泉接單;提供成都網(wǎng)站建設(shè)、網(wǎng)站建設(shè),網(wǎng)頁設(shè)計,網(wǎng)站設(shè)計,建網(wǎng)站,PHP網(wǎng)站建設(shè)等專業(yè)做網(wǎng)站服務(wù);采用PHP框架,可快速的進行鹿泉網(wǎng)站開發(fā)網(wǎng)頁制作和功能擴展;專業(yè)做搜索引擎喜愛的網(wǎng)站,專業(yè)的做網(wǎng)站團隊,希望更多企業(yè)前來合作!PHP-FPM
早期版本的 PHP 并沒有內(nèi)置的 WEB 服務(wù)器,而是提供了 SAPI(Server API)給第三方做對接。現(xiàn)在非常流行的 php-fpm 就是通過 FastCGI 協(xié)議來處理 PHP 與第三方 WEB 服務(wù)器之間的通信。
比如 Nginx + php-fpm 的組合,這種方式運行的 fpm 是 Master/Worker 模式,啟動一個 Master 進程監(jiān)聽來自 Nginx 的請求,再 fork 多個 Worker 進程處理請求。每個 Worker 進程只能處理一個請求,單一進程的生命周期大體如下:
初始化模塊。
初始化請求。此處請求是請求 PHP 執(zhí)行代碼的意思,并非 HTTP 的請求。
執(zhí)行 PHP 腳本。
結(jié)束請求。
關(guān)閉模塊。
Swoole
Swoole 采用的也是 Master/Worker 模式,不同的是 Master 進程有多個 Reactor 線程,Master 只是一個事件發(fā)生器,負責(zé)監(jiān)聽 Socket 句柄的事件變化。
Worker 以多進程的方式運行,接收來自 Reactor 線程的請求,并執(zhí)行回調(diào)函數(shù)(PHP 編寫的)。啟動 Master 進程的流程大致是:
初始化模塊。
初始化請求。因為 swoole 需要通過 cli 的方式運行,所以初始化請求時,不會初始化 PHP 的全局變量,如 $_SERVER, $_POST, $_GET 等。
執(zhí)行 PHP 腳本。包括詞法、語法分析,變量、函數(shù)、類的初始化等,Master 進入監(jiān)聽狀態(tài),并不會結(jié)束進程。
Swoole 加速的原理
由Reactor(epoll 的 IO 復(fù)用方式)負責(zé)監(jiān)聽Socket句柄的事件變化,解決高并發(fā)問題。
通過內(nèi)存常駐的方式節(jié)省 PHP 代碼初始化的時間,在使用笨重的框架時,用 swoole 加速效果是非常明顯的。
關(guān)于“swoole比fpm快的原因”這篇文章就分享到這里了,希望以上內(nèi)容可以對大家有一定的幫助,使各位可以學(xué)到更多知識,如果覺得文章不錯,請把它分享出去讓更多的人看到。
分享名稱:swoole比fpm快的原因-創(chuàng)新互聯(lián)
文章鏈接:http://muchs.cn/article32/doogsc.html
成都網(wǎng)站建設(shè)公司_創(chuàng)新互聯(lián),為您提供ChatGPT、品牌網(wǎng)站設(shè)計、電子商務(wù)、企業(yè)網(wǎng)站制作、網(wǎng)站制作、網(wǎng)站建設(shè)
聲明:本網(wǎng)站發(fā)布的內(nèi)容(圖片、視頻和文字)以用戶投稿、用戶轉(zhuǎn)載內(nèi)容為主,如果涉及侵權(quán)請盡快告知,我們將會在第一時間刪除。文章觀點不代表本網(wǎng)站立場,如需處理請聯(lián)系客服。電話:028-86922220;郵箱:631063699@qq.com。內(nèi)容未經(jīng)允許不得轉(zhuǎn)載,或轉(zhuǎn)載時需注明來源: 創(chuàng)新互聯(lián)
猜你還喜歡下面的內(nèi)容