yii2-swoole,让yii2跑在swoole上,无需修改一行yii2项目代码,性能成倍于php-fpm响应速度。
代码地址 http://www.github.com/liufee/yii2-swoole
composer require "feehi/yii2-swoole" 后,在console/config/main.php配置yii2-swoole路由, 然后执行php ./yii swoole/start即可。详细安装、配置参见代码地址里的说明文档。
线上swoole跑yii2性能体验
http://swoole-admin.demo.cms.qq.feehi.com (用户名feehicms,密码123456) 同一源码 php-fpm地址
yii2-swoole更新到0.1.1版本,不修改一行代码让yii2项目运行于swoole之上。 目前yii2-swoole修复了已知的所有bug,以下为近期修复的bug:
1. get参数有中括号导致模型load参数错误;
2. yii2的errorHandler使用了exit导致很多swoole错误log;
3. yii2日志使用register_shutdow_function写入文件swoole不退出无法触发写入日志文件;
4. 不释放db连接;
5. Request redirect地址不正确;
6. yii\web\UploadedFile private statci $_files因为swoole不退出无法重置
7. yii2-debugger使用define常量计算执行时间,swoole不退出无法重置
2017.12.16更新。因有朋友留言反应feehicms的数据不可信,建议使用yii2basic裸框架对比,开启opcache,使用php.ini-production。现结果公布如下:
**yii2 basic裸框架性能对比
php-fpm跑yii2basic裸框架首页 16ms (在8ms-34ms之间随机,分散很均匀)
swoole跑yii2basic裸框架首页 7ms (在6ms-12ms之间随机,分散很均匀)
>>因页面太小显示不了图片,请往图片上右键然后在新窗口中打开查看结果
**FeehiCMS2.0正式版(基于yii2框架不对框架做任何封装)在yii2-debugger栏中的信息统计
feehicms前台
-php-fpm
-yii2-swoole
feehicms后台
-php-fpm
-yii2-swoole
为了确保环境的统一,本机是一个docker容器,我把他当虚拟机用。dockerfile地址github.com/liufee/docker。也没有针对php做优化配置,开了debug的,是我的测试环境 开启opcache后,feehicms的前台首页是68ms