QeePHP 基础性能的基本测试,以及与 Yii 的性能比较
|
 
|
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 编辑 ] |
|
|
|
|
|
|
|
|

|
2#
发表于 2009-1-4 08:40
| 只看该作者
大哥,不要测试对比了,这个意义不大,快点把文档放出来呀。
我从去年农历春节就等着QEE了,快一年了。 |
|
|
|
|
|
|
|
|
 
|
4#
发表于 2009-1-4 09:06
| 只看该作者
原帖由 tdweb 于 2009-1-4 08:44 发表 
追求速度,我裸写PHP,改比吗?
裸写helloworld的速度确实比框架快,但是有意义吗? |
|
|
|
|
|
|
|
|
 
 
|
6#
发表于 2009-1-4 09:13
| 只看该作者
|
|
QQ[2009-5-1]PPC.........
|
|
|
|
|
|
 
|
7#
发表于 2009-1-4 09:13
| 只看该作者
| 这样对比。THINKPHP的FANS们该不同意了。 |
|
|
吾表兄,年四十余.始从文,连考三年而不中.遂习武,练武场上发一矢,中鼓吏,逐之出.改学医,自撰一良方,服之,卒
|
|
|
|
|
|
       
  
|
8#
发表于 2009-1-4 09:14
| 只看该作者
回复 3# tdweb 的帖子
结果相同,但是意义不同,你不可能只用框架来写Hello world吧~
回复 5#
是有必要测试一下~ |
|
|
巡视中……
|
|
|
|
|
|
 
|
9#
发表于 2009-1-4 09:17
| 只看该作者
原帖由 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 编辑 ] |
|
|
|
|
|
|
|
|
 
|
10#
发表于 2009-1-4 09:18
| 只看该作者
原帖由 muqiao 于 2009-1-4 09:11 发表 
怎么不测试数据库查询
这个是昨晚临时想到测试的,以后当然会全面测试。
其实单纯的 helloworld 输出测试也不是没有意义,因为在启动框架基本服务的情况下,谁的性能好就证明谁的核心更快。
当然,前提是测试时,大家的功能是接近的,如果功能上都没有可比性,那么就没有比较的基础了。 |
|
|
|
|
|
|
|