一些PHP的高性能的解决方案

2022-02-26 奥古斯宏
介绍一下关于PHP的性能提升的解决方案.

swoole模式部署

目前国内有一股"高性能PHP要上swoole"的风潮,说起高性能的swoole,大家都说是因为他是"C扩展"的,是"协程的",所以性能是高的.这种说法没什么问题,关于swoole的测评和教程也很多,开发生态也跟上了,这篇文章不多介绍,这里说PHP是想说,其实性能提升一个关键因素的并非`C扩展`或`协程`,而是开发模式由`PHP-FPM`变为了`PHP-CLI`,你会发现很多命令行的框架都生成有很高的性能.

webman

以下介绍摘自webman文档.

  • webman是什么

webman是一款基于workerman开发的高性能HTTP服务框架。webman用于替代传统的php-fpm架构,提供超高性能可扩展的HTTP服务。你可以用webman开发网站,也可以开发HTTP接口或者微服务。

除此之外,webman还支持自定义进程,可以做workerman能做的任何事情,例如websocket服务、物联网、游戏、TCP服务、UDP服务、unix socket服务等等。

  • webman理念

以最小内核提供最大的扩展性与最强的性能。

webman仅提供最核心的功能(路由、中间件、session、自定义进程接口)。其余功能全部复用composer生态,这意味着你可以在webman里使用最熟悉的功能组件,例如在数据库方面开发者可以选择使用Laravel的illuminate/database,也可以是ThinkPHP的ThinkORM,还可以是其它组件如Medoo。在webman里集成他们是非常容易的事情。

  • webman具有以下特点

1、高稳定性。webman基于workerman开发,workerman一直是业界bug极少的高稳定性socket框架。

版权声明:本文由phpreturn.com(PHP武器库官网)原创和首发,所有权利归phpreturn(PHP武器库)所有,本站允许任何形式的转载/引用文章,但必须同时注明出处。

2、超高性能。借助于workerman高性能以及对HTTP服务深入优化,webman性能高于传统php-fpm框架10-100倍左右,同时也远高于其它同类型常驻内存的web框架。

3、高复用。无需修改,可以复用绝大部分composer组件及类库。

4、高扩展性。支持自定义进程,可以做workerman能做的任何事情。

5、超级简单易用,学习成本极低,代码书写与传统框架没有区别。

6、使用最为宽松友好的MIT开源协议。

PHP-PM

是的,你没看错这个名字,不是php-fpm,而是PHP-PM,这是一个基于`react-php`的项目,与webman和众多swoole的框架不同,php-pm是一个`容器`.

版权声明:本文由phpreturn.com(PHP武器库官网)原创和首发,所有权利归phpreturn(PHP武器库)所有,本站允许任何形式的转载/引用文章,但必须同时注明出处。

对webman和swoole的一些框架来说,你需要基于它的框架来开发,比如是MVC的或其他的模式,这些框架跟ThinkPHP/Yii/Laravel是一个级别的,当然大部分这些框架有精简的.

PHP-PM可以看做一个php版的tomcat,目前内置支持Symfony/Laravel,但是凡是基于request-response 的框架都可以使用.

ReactPHP

这个框架跟workerman/swoole是一个级别的,可以很简单的运行一个高效的服务器,

$http = new React\Http\HttpServer(function (Psr\Http\Message\ServerRequestInterface $request) {
    return React\Http\Message\Response::plaintext(
        "Hello World!\n"
    );
});

$socket = new React\Socket\SocketServer('127.0.0.1:8080');
$http->listen($socket);

echo "Server running at http://127.0.0.1:8080" . PHP_EOL;

其实还有workerman和swoole本身,但是国内热度很高,就不多介绍了.单我写这篇文章,主要还是想介绍下面这个.

PHP-FPM

是的就是`传统`的PHP-FPM,我想说的是PHP-FPM并没有那么不堪,使用PHP8.1+jit+opcache,性能也会提高很多.

其实现在主流的框架使用composer加载依赖,动辄几千几万各文件需要加载,所以使用PHP-FPM感觉性能很差,其实主要浪费在加载文件上了.安装了opcache,性能会立马提高.

版权声明:本文由phpreturn.com(PHP武器库官网)原创和首发,所有权利归phpreturn(PHP武器库)所有,本站允许任何形式的转载/引用文章,但必须同时注明出处。

  • 较高的性能,不要小瞧了opcache
  • 无差别的开发,快速开发迭代,不需要适应各类框架
  • 稳定的运行,FPM稳如老狗

基于这三点,PHP-FPM仍然应该当是最推荐的用法.

最近浏览
IP用户:180.102.*.*
17 小时前 Sogou Spider
IP用户:60.188.*.*
2 天前 Generic Bot
IP用户:135.181.*.*
7 天前 MJ12 Bot
IP用户:101.67.*.*
7 天前 Generic Bot
IP用户:3.213.*.*
8 天前 Amazon Bot
IP用户:195.7.*.*
9 天前 MJ12 Bot
IP用户:52.167.*.*
10 天前 BingBot
IP用户:66.249.*.*
10 天前 Googlebot
IP用户:51.222.*.*
14 天前 aHrefs Bot
IP用户:99.241.*.*
15 天前 Chrome Windows 10
IP用户:220.181.*.*
15 天前 Baidu Spider
IP用户:66.249.*.*
15 天前 Googlebot
累计浏览次数:2374
评论
mrpzx001
swow了解下
fatrbaby
webman挺好用的,但是代码糙了点。如果webman的代码和设计能有Symfony Components的水平,我马上把所有项目换成webman。
songjean
fatrbaby可以加你微信交流吗
点击登录
phpreturn,PHP武器库,专注PHP领域的项目和资讯,收录和介绍PHP相关项目。
最近浏览 点击登录
累计浏览次数:190859
一周浏览次数:1110
今日浏览次数:132

本站所有权利归 phpreturn.com 所有

举报/反馈/投稿邮箱:phpreturn@ulthon.com

鲁ICP备19027671号-2