本次压测使用的是一台4核I5 CPU,8G内存的笔记本。使用的版本是:
swoole_framework github最新版
Yaf 2.2.9
Yii-1.1.14
php-fpm和swoole应用服务器均启用了8个进程,因为仅比较hello world,不存在阻塞,8进程足以压满CPU。php5-fpm中已经启用了apc对所有PHP进行缓存。
压测使用ab工具,参数为:
ab -c 100 -n 10000
Yaf
Server Software: nginx/1.2.6
Server Hostname: localhost
Server Port: 80
Document Path: /yafapp/
Document Length: 11 bytes
Concurrency Level: 100
Time taken for tests: 1.336 seconds
Complete requests: 10000
Failed requests: 0
Write errors: 0
Total transferred: 1770000 bytes
HTML transferred: 110000 bytes
Requests per second: 7486.03 [#/sec] (mean)
Time per request: 13.358 [ms] (mean)
Time per request: 0.134 [ms] (mean, across all concurrent requests)
Transfer rate: 1293.97 [Kbytes/sec] received
Yii
Server Software: nginx/1.2.6
Server Hostname: localhost
Server Port: 80
Document Path: /yiiapp/
Document Length: 11 bytes
Concurrency Level: 100
Time taken for tests: 8.016 seconds
Complete requests: 10000
Failed requests: 0
Write errors: 0
Total transferred: 1770000 bytes
HTML transferred: 110000 bytes
Requests per second: 1247.55 [#/sec] (mean)
SwooleFramework
Server Software: Swoole
Server Hostname: 127.0.0.1
Server Port: 8888
Document Path: /hello/index
Document Length: 11 bytes
Concurrency Level: 100
Time taken for tests: 1.470 seconds
Complete requests: 10000
Failed requests: 0
Write errors: 0
Total transferred: 2750000 bytes
HTML transferred: 110000 bytes
Requests per second: 6801.78 [#/sec] (mean)
Time per request: 14.702 [ms] (mean)
Time per request: 0.147 [ms] (mean, across all concurrent requests)
Transfer rate: 1826.65 [Kbytes/sec] receive
结果评价
有些人说框架的消耗和业务逻辑相比不算什么,这句话在你的QPS不到10个时是完全正确的。但如果你的网站访问量很大,机器负载很高,那么框架的性能消耗就会很明显的体现出来了。
Yii压测只有1200QPS,假设网站的平均QPS为200,因为框架的消耗是纯CPU消耗,也就是光Yii就会带来(200/1200)*100%=16.7%的CPU消耗。而Yaf/Swoole的QPS可达7000,200qps仅占用
(200/7000)*100%=2.8%的CPU消耗。当然200QPS对于一个巨型网站来说只是一个小数目,框架的CPU消耗会随着QPS增加而直线上升。
Swoole框架的早期版本可达9000QPS,swoole框架本身还是很复杂的,因为全部是PHP的代码实现,仅底层使用了swoole扩展,如果做了足够的精简和优化,还是有很大的上升空间。
压测证明Yaf的性能非常好。如果你希望使用PHP应用服务器可以选择Swoole,如果是LAMP/LNMP架构可以使用Yaf框架。
转载自:http://rango.swoole.com/archives/254
分享到:
相关推荐
yii2 swoole:让yii2运行在swoole上 , 运行在swoole上的yii2是运行在php-fpm上yii2的5倍以上
另一个是框架,像yii、TP、Laravel一样,是PHP代码写的。 swoole扩展本身提供了web服务器功能,可以替代php-fpm。 而如果仅仅用swoole框架,可以像其它PHP框架一样,运行在nignx、apache等web服务器中。 swoole...
Yii2 WebSocket 即时通讯Demo 问题反馈 在使用中有任何问题,欢迎反馈给我,可以用以下联系方式跟我交流 QQ群: 前提 服务器安装swoole git clone https://github.com/swoole/swoole-src.git cd swoole-src ...
Yii是一个基于组件的高性能PHP框架,用于开发大型Web应用。Yii采用严格的OOP编写,并有着完善的库引用以及全面的教程。从 MVC,DAO/ActiveRecord,widgets,caching,等级式RBAC,Web服务,到主题化,I18N和L10N,...
很好用yii框架很好用yii框架很好用yii框架很好用yii框架很好用yii框架很好用yii框架很好用yii框架很好用yii框架很好用yii框架很好用yii框架很好用yii框架很好用yii框架很好用yii框架
Yii2 Swoole扩展 在Swoole环境上运行Yii2应用程序。 此扩展基于组件驱动的开发。 对您的业务或Yii2框架没有任何副作用。 开始使用 初始化您的Yii应用程序 composer create-project --prefer-dist yiisoft/yii2-app...
yii2 console 集成swoole 执行异步任务,例如注册邮件,发送短信 使用方法:http://blog.csdn.net/nextvary/article/details/79136058
让yii2运行在swoole上
Web框架:ThinkPHP/Yaf/Yii/Lavaral/LazyPHP 前端框架:Bootstrap/AngularJS/EmberJS/HTML5/Cocos2dJS/ionic 前端工具:Bower/Gulp/SaSS/LeSS/PhoneGap 数据库相关:MySQL/PgSQL/PDO/SQLite 版本管理、文档和自动化...
yii2-swoole 为赋予 Yii2 框架协程异步能力而生。 后期开发会依赖 去实现功能,相信 Swoft 会是下一代优秀的框架。 此插件基于 swoole (v2.0) 底层实现的协程,改造 Yii2 的核心代码,使开发者无感知,以及在不改动...
yii_swoole_task在YII框架中结合了swoole 的task 做了异步处理。本例中 主要用到1、protected/commands/ServerCommand.php 用来做server。2、protected/event/下的文件 这里是在异步中的具体实现。客户端调用参照 ...
这是一个在centos7上,集成swoole+yii2 advanced的项目。同时运行了swoole的http服务和socket服务 项目环境:php7+swoole2.0+yii2 advanced,在使用此项目前请确保php已经加载了swoole扩展。 该项目和一般的yii2 ...
yii框架yii框架yii框架yii框架yii框架yii框架yii框架yii框架yii框架yii框架yii框架yii框架yii框架yii框架yii框架yii框架yii框架yii框架
MixPHP 是一个基于 Swoole 的高性能框架,CodeIgniter 是一个元老级的轻量级框架,Yii 是一个非常流行的框架,以下是三个框架的对比。 由于Yii/CodeIgniter 是基于 Apache/PHP-FPM 的传统框架,如果使用 MixPHP 的...
yii2-swoole 这是用于 swoole 支持的 yii2 扩展 还是行不通
据说是超越所有的PHP框架php最新框架YII框架php最新框架YII框架
yii框架教程yii框架教程yii框架教程yii框架教程yii框架教程yii框架教程
Yii Yii框架 Yii框架快速入门,自己整理的很全的,很容易看懂
《Yii框架深度剖析》配套代码 本书不是简单地介绍如何使用 Yii 框架,而是站在框架设计的高度,从源代码级别深 度剖析。本书首先介绍 PHP 框架技术的概念及其应用领域,然后开始仿照 Yii 框架源代码 自定义框架,...
Yii是一个高性能的PHP5的web应用程序开发框架。通过一个简单的命令行工具yiic可以快速创建一个web应用程序的代码框架,开发者可以在生成的代码框架基础上添加业务逻辑,以快速完成应用程序的开发。 Yii开发框架 v...