“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倍.