首頁 >php框架 >Swoole >swoole為什麼比fpm快

swoole為什麼比fpm快

(*-*)浩
(*-*)浩原創
2019-12-13 09:13:293068瀏覽

swoole為什麼比fpm快

PHP-FPM

早期版本的PHP 並沒有內建的WEB 伺服器,而是提供了SAPI(Server API)給第三方做對接。現在非常流行的 php-fpm 就是透過 FastCGI 協定來處理 PHP 與第三方 WEB 伺服器之間的通訊。 (推薦學習: swoole影片教學

例如Nginx php-fpm 的組合,這種方式運行的fpm 是Master/Worker 模式,啟動一個Master 進程監聽來自Nginx 的請求,再fork 多個Worker 進程處理請求。每個 Worker 行程只能處理一個請求,單一行程的生命週期大致如下:

初始化模組。

初始化請求。此處請求是請求 PHP 執行程式碼的意思,並非 HTTP 的請求。

執行 PHP 腳本。

結束請求。

關閉模組。

Swoole

Swoole 採用的也是Master/Worker 模式,不同的是Master 行程有多個Reactor 線程,Master 只是一個事件產生器,負責監聽Socket 句柄的事件變化。

Worker 以多進程的方式運行,接收 Reactor 執行緒的請求,並執行回調函數(PHP 編寫的)。啟動 Master 進程的流程大致是:

初始化模組。

初始化請求。因為 swoole 需要透過 cli 的方式運行,所以初始化請求時,不會初始化 PHP 的全域變量,如 $_SERVER, $_POST, $_GET 等。

執行 PHP 腳本。包括詞法、語法分析,變數、函數、類別的初始化等,Master 進入監聽狀態,並不會結束流程。

Swoole 加速的原理

由Reactor(epoll 的 IO 復用方式)負責監聽Socket句柄的事件變化,解決高並發問題。

透過記憶體常駐的方式節省 PHP 程式碼初始化的時間,在使用笨重的框架時,用 swoole 加速效果是非常明顯的。

以上是swoole為什麼比fpm快的詳細內容。更多資訊請關注PHP中文網其他相關文章!

陳述:
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn
上一篇:swoole怎麼運行下一篇:swoole怎麼運行