4
回答
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,嗯,是个问题 ^_^

举报
红薯
发帖于9年前 4回/4K+阅
顶部