“Never guess, Get data”翻译成中国话就是:“不要胡乱猜测,拿出数据来证明”。前几天对常用的PHP框架进行了对比测试。内容如下:
测试环境:
硬件环境:
THINKPAD T61笔记本
CPU:INTEL CORE(TM2) DUO T770
内存:2G
硬盘:320G 7200
显卡:集成显卡
软件环境:
操作系统:win 2003 sp2
PHP环境:Apache/2.2.17 (Win32) PHP/5.3.6
数据库:mysql 5.5.10
测试工具:apache bench (即:ab)
测试内容:ab -c 10 -n 1000 测试网址
让这些框架从同一个数据库,同一个数据表读出1000条数据,并在视图中显示出来,且视图采用视图渲染(即:layout和widget应用)。保证最后输出页面内容相同(HTML完全一样)。
测试结果:
1、原生php:

注:上图测试数据是500次的测试数据,在测试1000时,由于系统报错,故测试了500次。
所用时间:2.032秒(1.016*2)
平均每秒请求次数:492.31次
平均每次请求所用时间:20.313毫秒
2、doitphp:
测试版本:1.0

所用时间:5.750秒
平均每秒请求次数:173.91次
平均每次请求所用时间:57.500毫秒
(是原生PHP运行效率的35.3%)
3、thinkphp
测试版本:2.1

所用时间:11.797秒
平均每秒请求次数:84.77次
平均每次请求所用时间:117.969毫秒
(是原生PHP运行效率的17.2%)
4、codeigniter
测试版本:2.0.2

所用时间:15.266秒
平均每秒请求次数:65.51次
平均每次请求所用时间:152.656毫秒
(是原生PHP运行效率的13.3%)
5、yii framework
测试版本:1.1.8

所用时间:26.328秒
平均每秒请求次数:37.98次
平均每次请求所用时间:263.281毫秒
(是原生PHP运行效率的7.7%)
6、doophp
测试版本:1.4.1

所用时间:14.484秒
平均每秒请求次数:69.04次
平均每次请求所用时间:144.844毫秒
(是原生PHP运行效率的14.0%)
7、qeephp
测试版本:2.1.2560

所用时间:24.609秒
平均每秒请求次数:40.63次
平均每次请求所用时间:246.094毫秒
(是原生PHP运行效率的8.3%)
结论:
在综合应用上,DoitPHP运行效率分别是:
原生PHP的 35.3%,
是thinkphp 2.1 的2.1倍
是codeigniter 2.0.2的2.6倍
是doophp 1.4.1的2.5倍
是yii 1.1.8的4.5倍
是qeephp 2.1.2560的4.3倍。
没测试源码?
http://rakesh-sankar.github.com/PHP-Framework-Benchmark/
https://github.com/darkredz/Web-Framework-Benchmark
https://github.com/pmjones/php-framework-benchmarks/
http://www.box.net/shared/bi822hgesa2mmog4ne4p
如果数据真是如此的话,那太好了。
这种测试没什么意义。但很少有人在生产环境中去做什么对比。 应该考虑的是易用性可扩展性,是否够强壮。 现在服务器成本又不高一味的追求这种性能极致只适合在某些特殊领域中,则这样的都是非通用框架的自我实现产品。 还是回归正途吧。
在国内来说 thinkphp 还是不错的但是支持还不够全面而且BUG进展慢。 YII挺强大,强大也必然会导致有点慢。
呵呵..不久你就会发现国内比thinkphp还NB的PHP框架:doitphp