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快的细致内容,更多请关注ki4网别的相干文章!
收藏 | 0