首页 | PHP资讯 | 技术专栏 | 资源共享 | PHP培训 | PHP职场 | 图书 | PHP ON WIN | PHP圈子
返回列表 回复 发帖

[FleaPHP/Qee] QeePHP 基础性能的基本测试,以及与 Yii 的性能比较

[FleaPHP/Qee] QeePHP 基础性能的基本测试,以及与 Yii 的性能比较

本来不想做这个测试的,但是论坛上有人问,就简单测试了一下。

测试环境并不是服务器,而是我的个人 PC,配置如下:
CPU:闪龙 3000+
内存: 2G
Windows XP SP3
Apache 2.2 + PHP 5.2.6 + XCache
虽然测试结果比起专业服务器来说严重偏低,但是通过相对比较还是能看到优势的。

测试开始:

使用社区平台应用(开源发布,地址:http://qeephp.com/projects/show/name/community),采用如下设置:

- 关掉 session
- 采用部署模式
- 采用 XCache 作为缓存服务
- 默认控制器的默认动作中直接 die('hello');

测试命令:
ab -t 30 -c 10 http://community.local/
(持续30秒,并发10)

第一次结果:RPS 122.73
第二次结果:RPS 121.27
第三次结果:RPS 122.40

再次使用社区平台应用测试,设置改为:

- 禁用 URL 路由

第一次结果:RPS 136.27
第二次结果:RPS 136.20
第三次结果:RPS 136.93

再次使用社区平台应用测试,设置改为:

- 启用路由
- 打开 session

第一次结果:RPS  98.27 (服务器产生 2958 个 session 文件)
第二次结果:RPS  99.93 (服务器产生 3008 个 session 文件)
第三次结果:RPS 100.73 (服务器产生 3032 个 session 文件)

-------------------------------------

对比三次测试,可以看到不使用 session 是最快的。因为默认的 session 设置会在磁盘上创建 session 文件。
当 session 文件数量达到数千个时,对性能有明显影响。

URL 路由由于要解析请求,所以对性能也有一定的影响。但相信优化后影响幅度会降低不少。

-------------------------------------

使用一个新建的 QeePHP 应用,设置为:

- 关掉 session
- 禁用 URL 路由
- 采用部署模式
- 采用 XCache 作为缓存服务
- 默认控制器的默认动作中直接 die('hello');

第一次结果:RPS 168.47
第二次结果:RPS 169.00
第三次结果:RPS 168.77

不过为什么同等设置时,新建应用比社区平台快的原因还未找到,呵呵。

=====================================

使用 yii 自带的 hello world 示例进行测试:

- 默认控制器改为 die('hello');
- 使用 yii.php

第一次结果:RPS 69.63
第二次结果:RPS 69.30
第三次结果:RPS 69.80
平均:69.58

修改设置后继续测试:

- 默认控制器改为 die('hello');
- 使用 yiilite.php (优化版的 yii)

第一次结果:RPS 108.70
第二次结果:RPS 108.33
第三次结果:RPS 108.43
平均:108.49

由于 yii 默认是不启用 session 的,所以在控制器中增加了一行 session_start() 后再测试:

第一次结果:RPS  93.13 (服务器产生 2804 个 session 文件)
第二次结果:RPS  94.23 (服务器产生 2837 个 session 文件)
第三次结果:RPS  93.87 (服务器产生 2826 个 session 文件)
平均:93.41

-------------------------------------

yii 使用 yii.php 和 yiilite.php 时的测试结果和 yii 官方网站上的结果接近(性能比例):

108.49 /  69.58 = 1.56
454    / 331    = 1.37

误差可能是操作系统以及 XCache 和 APC(yii 官方网站使用 linux 和 apc 进行测试)之间的差异。

=====================================

对比测试结果不言而喻,QeePHP 比目前国外最快的 Yii 还要快。
至于国内最快的是 QeePHP 还是 FleaPHP,嗯,是个问题 ^_^

[ 本帖最后由 fleaphp 于 2009-1-4 04:53 编辑 ]
大哥,不要测试对比了,这个意义不大,快点把文档放出来呀。
我从去年农历春节就等着QEE了,快一年了。
追求速度,我裸写PHP,改比吗?
原帖由 tdweb 于 2009-1-4 08:44 发表
追求速度,我裸写PHP,改比吗?
裸写helloworld的速度确实比框架快,但是有意义吗?
怎么不测试数据库查询
文档最重要
QQ[2009-5-1]
这样对比。THINKPHP的FANS们该不同意了。
吾表兄,年四十余.始从文,连考三年而不中.遂习武,练武场上发一矢,中鼓吏,逐之出.改学医,自撰一良方,服之,卒

回复 3# tdweb 的帖子

结果相同,但是意义不同,你不可能只用框架来写Hello world吧~

回复 5#
是有必要测试一下~
巡视中……
原帖由 tdweb 于 2009-1-4 08:44 发表 [url=redirect.php?goto=findpost&pid=814156&ptid=100306][/url]
追求速度,我裸写PHP,改比吗?
我知道你挺 tp,但也不至于这样抬杠嘛。

看清楚我的帖子内容,qeephp 的测试虽然只是输出 helloworld,但是仍然包括了启动 mvc 模式、初始化运行环境、URL 路由解析、ACL 访问控制在内的基本服务
这和单纯写一行 echo 'helloworld' 有本质不同。

如果要比裸写,封装同等功能的前提下,想要快过我写的也很难。

[ 本帖最后由 fleaphp 于 2009-1-4 09:19 编辑 ]
原帖由 muqiao 于 2009-1-4 09:11 发表
怎么不测试数据库查询
这个是昨晚临时想到测试的,以后当然会全面测试。
其实单纯的 helloworld 输出测试也不是没有意义,因为在启动框架基本服务的情况下,谁的性能好就证明谁的核心更快。
当然,前提是测试时,大家的功能是接近的,如果功能上都没有可比性,那么就没有比较的基础了。
返回列表