真实的国产乱ⅩXXX66竹夫人,五月香六月婷婷激情综合,亚洲日本VA一区二区三区,亚洲精品一区二区三区麻豆

成都創(chuàng)新互聯(lián)網(wǎng)站制作重慶分公司

Swoole和PHP-FPM有什么不同?

PHP-FPM

創(chuàng)新互聯(lián)建站“設(shè)計定江山,服務(wù)贏天下“的思想,用細(xì)節(jié)和態(tài)度獲得客戶的認(rèn)可與同行的尊重,服務(wù)是創(chuàng)新互聯(lián)建站企業(yè)文化中重要的核心思想,每一位員工要致力成為客戶心中堅實的服務(wù)后盾。

早期版本的 PHP 并沒有內(nèi)置的 WEB 服務(wù)器,而是提供了 SAPI(Server API)給第三方做對接?,F(xiàn)在非常流行的 php-fpm 就是通過 FastCGI 協(xié)議來處理 PHP 與第三方 WEB 服務(wù)器之間的通信。比如 Nginx + php-fpm 的組合,這種方式運(yùn)行的 fpm 是 Master/Worker 模式,啟動一個 Master 進(jìn)程監(jiān)聽來自 Nginx 的請求,再 fork 多個 Worker 進(jìn)程處理請求。每個 Worker 進(jìn)程只能處理一個請求,單一進(jìn)程的生命周期大體如下:

1.初始化模塊。

2.初始化請求。此處請求是請求 PHP 執(zhí)行代碼的意思,并非 HTTP 的請求。

3.執(zhí)行 PHP 腳本。

4.結(jié)束請求。

5.關(guān)閉模塊。

多進(jìn)程模型是依賴進(jìn)程數(shù)來解決并發(fā)問題,一個進(jìn)程只能處理一個連接,當(dāng)啟動大量進(jìn)程,進(jìn)程調(diào)度消耗可能占 CPU 的百分之幾十甚至 100%,比如 C10K 問題,多進(jìn)程模型就力不從心了。

Swoole

Swoole 采用的也是 Master/Worker 模式,不同的是 Master 進(jìn)程有多個 Reactor 線程,Master 只是一個事件發(fā)生器,負(fù)責(zé)監(jiān)聽 Socket 句柄的事件變化。Worker 以多進(jìn)程的方式運(yùn)行,接收來自 Reactor 線程的請求,并執(zhí)行回調(diào)函數(shù)(PHP 編寫的)。啟動 Master 進(jìn)程的流程大致是:

1.初始化模塊。

2.初始化請求。因為 swoole 需要通過 cli 的方式運(yùn)行,所以初始化請求時,不會初始化 PHP 的全局變量,如 $_SERVER, $_POST, $_GET 等。

3.執(zhí)行 PHP 腳本。包括詞法、語法分析,變量、函數(shù)、類的初始化等,Master 進(jìn)入監(jiān)聽狀態(tài),并不會結(jié)束進(jìn)程。

Swoole 加速的原理

● 由 Reactor(epoll 的 IO 復(fù)用方式)負(fù)責(zé)監(jiān)聽 Socket 句柄的事件變化,解決高并發(fā)問題。

● 通過內(nèi)存常駐的方式節(jié)省 PHP 代碼初始化的時間,在使用笨重的框架時,用 swoole 加速效果是非常明顯的。

對比不同

PHP-FPM

● Master 主進(jìn)程 / Worker 多進(jìn)程模式。

● 啟動 Master,通過 FastCGI 協(xié)議監(jiān)聽來自 Nginx 傳輸?shù)恼埱蟆?/p>

● 每個 Worker 進(jìn)程只對應(yīng)一個連接,用于執(zhí)行完整的 PHP 代碼。

● PHP 代碼執(zhí)行完畢,占用的內(nèi)存會全部銷毀,下一次請求需要重新再進(jìn)行初始化等各種繁瑣的操作。

● 只用于 HTTP Server。

Swoole

● Master 主進(jìn)程(由多個 Reactor 線程組成)/ Worker 多進(jìn)程(或多線程)模式

● 啟動 Master,初始化 PHP 代碼,由 Reactor 監(jiān)聽 Socket 句柄的事件變化。

● Reactor 主線程負(fù)責(zé)子多線程的均衡問題,Manager 進(jìn)程管理 Worker 多進(jìn)程,包括 TaskWorker 的進(jìn)程。

● 每個 Worker 接受來自 Reactor 的請求,只需要執(zhí)行回調(diào)函數(shù)部分的 PHP 代碼。

● 只在 Master 啟動時執(zhí)行一遍 PHP 初始化代碼,Master 進(jìn)入監(jiān)聽狀態(tài),并不會結(jié)束進(jìn)程。

● 不僅可以用于 HTTP Server,還可以建立 TCP 連接、WebSocket 連接。

以上就是PHP-FPM與Swoole的比較的詳細(xì)內(nèi)容,更多請關(guān)注創(chuàng)新互聯(lián)其它相關(guān)文章!


新聞標(biāo)題:Swoole和PHP-FPM有什么不同?
分享URL:http://weahome.cn/article/pehoss.html

其他資訊

在線咨詢

微信咨詢

電話咨詢

028-86922220(工作日)

18980820575(7×24)

提交需求

返回頂部