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 相关文章推荐
PHP 和 HTML
Oct 09 PHP
php数组函数序列之array_sum() - 计算数组元素值之和
Oct 29 PHP
3个PHP多维数组转为一维数组的方法实例
Mar 13 PHP
php中创建和调用webservice接口示例
Jul 25 PHP
推荐几款用 Sublime Text 开发 Laravel 所用到的插件
Oct 30 PHP
Yii的CDbCriteria查询条件用法实例
Dec 04 PHP
浅析THINKPHP的addAll支持的最大数据量
Feb 03 PHP
学习php设计模式 php实现命令模式(command)
Dec 08 PHP
在WordPress中安装使用视频播放器插件Hana Flv Player
Jan 04 PHP
PHP上传图片、删除图片简单实例
Nov 12 PHP
PHP递归遍历文件夹去除注释并压缩php源代码的方法示例
May 23 PHP
php变量与字符串的增删改查操作示例
May 07 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
第四章 php数学运算
2011/12/30 PHP
yum命令安装php7和相关扩展
2016/07/04 PHP
PHP常用操作类之通信数据封装类的实现
2017/07/16 PHP
PHP7 字符串处理机制修改
2021/03/09 PHP
XHTML-Strict 内允许出现的标签
2006/12/11 Javascript
jQuery EasyUI API 中文文档 - ComboTree组合树
2011/10/11 Javascript
多个datatable共存造成多个表格的checkbox都被选中
2013/07/11 Javascript
JavaScript中的关键字&quot;VAR&quot;使用详解 分享
2013/07/31 Javascript
JavaScript中九种常用排序算法
2014/09/02 Javascript
ie8模式下click无反应点击option无反应的解决方法
2014/10/11 Javascript
Javascript基础教程之数组 array
2015/01/18 Javascript
JS中的Replace方法使用经验分享
2015/05/20 Javascript
javascript实现一个数值加法函数
2015/06/26 Javascript
jQuery实现的自动加载页面功能示例
2016/09/04 Javascript
JS点击某个图标或按钮弹出文件选择框的实现代码
2016/09/27 Javascript
jQuery编写设置和获取颜色的插件
2017/01/09 Javascript
微信小程序 本地存储及登录页面处理实例详解
2017/01/11 Javascript
微信小程序 使用canvas制作K线实例详解
2017/01/12 Javascript
Node.js如何使用Diffie-Hellman密钥交换算法详解
2017/09/05 Javascript
Python入门篇之面向对象
2014/10/20 Python
Python中for循环控制语句用法实例
2015/06/02 Python
python使用正则表达式的search()函数实现指定位置搜索功能
2017/11/10 Python
python SQLAlchemy 中的Engine详解
2019/07/04 Python
对Python 中矩阵或者数组相减的法则详解
2019/08/26 Python
Python插入Elasticsearch操作方法解析
2020/01/19 Python
Django实现图片上传功能步骤解析
2020/04/22 Python
Django分组聚合查询实例分享
2020/04/29 Python
英国Boots旗下太阳镜网站:Boots Designer Sunglasses
2018/07/07 全球购物
美国在线纱线商店:Darn Good Yarn
2019/03/20 全球购物
支教自我鉴定
2014/01/18 职场文书
古汉语文学求职信范文
2014/03/16 职场文书
企业文明单位申报材料
2014/05/16 职场文书
2014年教师节演讲稿范文
2014/09/10 职场文书
运动会铅球比赛加油稿
2014/09/26 职场文书
作风建设整改方案
2014/10/27 职场文书
Apache POI的基本使用详解
2021/11/07 Servers