PHP4和PHP5性能测试和对比 测试代码与环境


Posted in PHP onAugust 17, 2007

作者:heiyeluren
博客:
http://blog.csdn.net/heiyeshuwu
时间:2007年8月6日
PHP 4到今年年底PHP Group将不再对其进行支持了,所以为了让大家更有信心的转移到PHP 5平台上,我特别做了这个测试,看看我们PHP 4.x 是否真的性能比我们的PHP 5.x要好捏,测试结果很明显,那就是PHP 5.x 比php 4.x不论是面向对象还是面向过程,都要比PHP 4.x 要快,所以大家完全有必要转移到PHP 5.x 平台上,去体验PHP 5.x 平台的各种功能和性能。

因为PHP 5 包括新的对象模型,更多新特点,更快的处理速度,特别是处理面向对象代码的速度,虽然在php 4中面向对象代码的速度比较一般,但是在PHP5.x中面向对象代码的速度都超过了面向过程的速度,所以不要对面向对象的性能持有怀疑,下面的测试结果将说明这一切。

【测试环境】

  • CPU: Intel Pentium4 2.66GHz
  • Memory: 1GB
  • Disk: 73GB/SCSI
  • OS: FreeBSD 4.11
  • Web: Apache 1.3.37
    测试工具:ab (也可以选用http_load)
    名词RPS: Requests per second (每秒的请求数量)

相关
测试工具:ab (也可以选用http_load)
名词RPS: Requests per second (每秒的请求数量)

【PHP 4.4.2 测试结果】

[ 函数 Function ]

<?php
function signin(){
echo “test”;
}
signin();
?>

测试结果:ab -n 10000 -c 50 的结果是1047.23/rps
[ 类 Class ]

不实例化类
<?php
class User{
function signin(){
echo “test”;
}
}
User::signin();
?>

测试结果:ab -n 10000 -c 50 的结果是 1034.98/rps
实例化类
<?php
class User{
function signin(){
echo “test”;
}
}
$user=new User();
$user->signin();
?>

测试结果:ab -n 10000 -c 50 的结果是 1006.14/rps
类的继承
<?php
class AUser{
function signin(){}
}
class User extends Auser{
function signin(){
echo “test”;
}
}
$user=new User();
$user->signin();
?>

测试结果:ab -n 10000 -c 50 的结果是 992.95/rps

【PHP 5.2.1测试结果】

[ 函数 Function ]

<?php
function signin(){
echo “test”;
}
signin();
?>

测试结果:ab -n 10000 -c 50 的结果是 1176.06/rps
[ 类 Class ]

不实例化类
<?php
class User{
public function signin(){
echo “test”;
}
}
User::signin();
?>

测试结果:ab -n 10000 -c 50 的结果是 1197.17/rps

实例化类
<?php
class User{
public function signin(){
echo “test”;
}
}
$user=new User();
$user->signin();
?>

测试结果:ab -n 10000 -c 50 的结果是 1187.93/rps
类的继承和抽象
<?php
abstract class AUser{
abstract function signin();
}
class User extends Auser{
public function signin(){
echo “test”;
}
}
$user=new User();
$user->signin();
?>

测试结果:ab -n 10000 -c 50 的结果是 1128.54/rps

【测试结果和分析】

[ 测试结果数据 ]

版本 函数测试 不实例化类 实例化类 类的继承
PHP 4.4.2 1047.23/rps 1034.98/rps 1006.14/rps 992.95/rps
PHP 5.2.1 1176.06/rps 1197.17/rps 1187.93/rps 1128.54/rps

[ 结果分析 ]

1. 总体来说,可以明显刚看到PHP5.2 的性能要比 PHP4.4略高一点,所以不要怀疑PHP5.2的性能会差,明显比 PHP4要快
2. PHP4.4中的类的解析性能明显要比函数的要慢,特别是当使用了继承以后,更是下降的厉害,所以在PHP4.4中更适宜使用面向过程和没有继承的类操作
3. PHP5.2中结果是类的执行速度比函数还要快,可以看出PHP5.2的引擎对面向对象处理花费了很大的功夫,同时他们不论是函数还是类,性能都不错
4. 通过这个测试,我们完全有理由在代码变更不大的情况下,把PHP4升级到PHP5,而且PHP5基本向下兼容PHP4的代码,除了一些特殊的代码。另外上面提到今年年底之后PHP Group将不再继续对PHP4进行维护了,所以早升级,早安心。

PS: 感谢同事健祥同学提供部分测试代码

PHP 相关文章推荐
第七节--类的静态成员
Nov 16 PHP
php 更新数据库中断的解决方法
Jun 05 PHP
phpmyadmin MySQL 加密配置方法
Jul 05 PHP
一步一步学习PHP(6) 面向对象
Feb 16 PHP
PHP 字符串加密函数(在指定时间内加密还原字符串,超时无法还原)
Apr 28 PHP
深入解析php中的foreach函数
Aug 31 PHP
PHP $_FILES中error返回值详解
Jan 30 PHP
PHP定时更新程序设计思路分享
Jun 10 PHP
在WordPress的后台中添加顶级菜单和子菜单的函数详解
Jan 11 PHP
php cookie用户登录的详解及实例代码
Jan 03 PHP
Laravel框架定时任务2种实现方式示例
Dec 08 PHP
如何利用PHP实现上传图片功能详解
Sep 24 PHP
在PHP里得到前天和昨天的日期的代码
Aug 16 #PHP
PHP与MySQL开发中页面出现乱码的一种解决方法
Jul 29 #PHP
真正的ZIP文件操作类(php)
Jul 21 #PHP
php 用sock技术发送邮件的函数
Jul 21 #PHP
php中ob(Output Buffer 输出缓冲)函数使用方法
Jul 21 #PHP
在普通HTTP上安全地传输密码
Jul 21 #PHP
发布一个迷你php+AJAX聊天程序[聊天室]提供下载
Jul 21 #PHP
You might like
10个实用的PHP代码片段
2011/09/02 PHP
PHP生成随机密码类分享
2014/06/25 PHP
Laravel validate error处理,ajax,json示例
2019/10/25 PHP
在线编辑器中换行与内容自动提取
2009/04/24 Javascript
制作高质量的JQuery Plugin 插件的方法
2010/04/20 Javascript
JQuery 控制内容长度超出规定长度显示省略号
2014/05/23 Javascript
PHP实现的各种中文编码转换类分享
2015/01/23 Javascript
Angular中$compile源码分析
2016/01/28 Javascript
JS实现页面中所有img对象添加onclick事件及新窗口查看图片的方法
2016/12/27 Javascript
windows 下安装nodejs 环境变量设置
2017/02/02 NodeJs
JS常用倒计时代码实例总结
2017/02/07 Javascript
vuejs2.0运用原生js实现简单的拖拽元素功能示例
2017/02/24 Javascript
10个最优秀的Node.js MVC框架
2017/08/24 Javascript
js replace替换字符串同时替换多个方法
2018/11/27 Javascript
element-ui组件table实现自定义筛选功能的示例代码
2019/03/15 Javascript
vue踩坑记录之数组定义和赋值问题
2019/03/20 Javascript
实例讲解React 组件生命周期
2020/07/08 Javascript
JavaScript实现五子棋小游戏
2020/10/26 Javascript
[49:35]2018DOTA2亚洲邀请赛3月30日 小组赛A组 KG VS TNC
2018/03/31 DOTA
python爬虫模块URL管理器模块用法解析
2020/02/03 Python
Python 实现Image和Ndarray互相转换
2020/02/19 Python
python GUI库图形界面开发之PyQt5浏览器控件QWebEngineView详细使用方法
2020/02/26 Python
用Python生成HTML表格的方法示例
2020/03/06 Python
CSS3 特效范例整理
2011/08/22 HTML / CSS
什么是URL
2015/12/13 面试题
文员个人的求职信范文
2013/09/26 职场文书
大型活动策划方案
2014/01/12 职场文书
应用英语专业自荐信
2014/01/26 职场文书
大学毕业感言50字
2014/02/07 职场文书
《花瓣飘香》教学反思
2014/04/15 职场文书
书香家庭事迹材料
2014/05/09 职场文书
邀请函怎么写
2015/01/30 职场文书
律师函格式范本
2015/05/27 职场文书
周一问候语大全
2015/11/10 职场文书
关于ObjectUtils.isEmpty() 和 null 的区别
2022/02/28 Java/Android
《吸血鬼:避世 血猎》官宣4.27发售 系列首款大逃杀
2022/04/03 其他游戏