yii2-swoole,让yii2运行在swoole上。响应速度比php-fpm提升5倍以上

扩展 · feehi · 于 5年前 发布 · 10152 次阅读

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性能体验

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

本帖已被设为精华帖!
共收到 6 条回复 Yii2增强 yii2 component Yii2 重写
Allen#15年前 1 个赞

开了opcache么?是本地跑的么?如果是本地,一个简单cms,竟然要400+、600+ms,本来就很有问题,对比似乎也就没有太大说服力,我觉得用yii2-app-basic做测试可能更好。

feehi#25年前 0 个赞

为了确保环境的统一,本机是一个docker容器,我把他当虚拟机用。dockerfile地址github.com/liufee/docker。也没有针对php做优化配置,开了debug的,是我的测试环境 开启opcache后,feehicms的前台首页是68ms

3楼 已删除.
4楼 已删除.
feehi#55年前 0 个赞

@Allen #1楼 感谢建议,使用yii2 basic测试情况 **yii2 basic裸框架性能对比

  • php-fpm跑yii2basic裸框架首页 16ms (在8ms-34ms之间随机,分散很均匀)

  • swoole跑yii2basic裸框架首页 7ms (在6ms-12ms之间随机,分散很均匀)

>>因页面太小显示不了图片,请往图片上右键然后在新窗口中打开查看结果

Allen#65年前 0 个赞

@feehi #5楼 恩, 现在这个数据是比较合理的,但是同时也需要关注下内存的使用。

chariothy#74年前 0 个赞

要注意到Yii可是写了11条Log的,这11次的磁盘IO可不是小数目,而且Yii的内存只有不到2MB。 个人觉得swoole更适合在底层做个rpc,前面架上Nodejs。

添加回复 (需要登录)
需要 登录 后方可回复, 如果你还没有账号请点击这里 注册