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制作静态网站的模板框架
Oct 09 PHP
PHP集成FCK的函数代码
Sep 27 PHP
ThinkPHP的Widget扩展实例
Jun 19 PHP
php使用session二维数组实例
Nov 06 PHP
php访问数组最后一个元素的函数end()用法
Mar 18 PHP
php获取远程文件大小
Oct 20 PHP
CentOS下PHP7的编译安装及MySQL的支持和一些常见问题的解决办法
Dec 17 PHP
PHP给文字内容中的关键字进行套红处理
Apr 12 PHP
PHP中的多种加密技术及代码示例解析
Oct 20 PHP
PHP foreach遍历多维数组实现方式
Nov 16 PHP
分享5个非常有用的Laravel Blade指令
May 30 PHP
php微信开发之音乐回复功能
Jun 14 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
在任意字符集下正常显示网页的方法二(续)
2007/04/01 PHP
PHP面向对象概念
2011/11/06 PHP
那些年一起学习的PHP(二)
2012/03/21 PHP
php获取$_POST同名参数数组的实现介绍
2013/06/30 PHP
PHP中soap的用法实例
2014/10/24 PHP
php中preg_replace_callback函数简单用法示例
2016/07/21 PHP
PHP实现的文件操作类及文件下载功能示例
2016/12/24 PHP
smarty模板的使用方法实例分析
2019/09/18 PHP
PHP 图片合成、仿微信群头像的方法示例
2019/10/25 PHP
PHP中echo与print区别点整理
2021/03/09 PHP
javascript 动态添加表格行
2006/06/22 Javascript
javascript import css实例代码
2008/07/18 Javascript
JavaScript字符串对象substring方法入门实例(用于截取字符串)
2014/10/17 Javascript
JQuery的Ajax中Post方法传递中文出现乱码的解决方法
2014/10/21 Javascript
js的[defer]和[async]属性
2014/11/24 Javascript
jQuery实现简单二级下拉菜单
2015/04/12 Javascript
jQuery实现打开页面渐现效果示例
2016/07/27 Javascript
dul无法加载bootstrap实现unload table/user恢复
2016/09/29 Javascript
javascript淘宝主图放大镜功能
2016/10/20 Javascript
bootstrap响应式表格实例详解
2017/05/15 Javascript
JavaScript实现微信红包算法及问题解决方法
2018/04/26 Javascript
python中os和sys模块的区别与常用方法总结
2017/11/14 Python
浅谈python数据类型及类型转换
2017/12/18 Python
Python Pandas 获取列匹配特定值的行的索引问题
2019/07/01 Python
如何真正的了解python装饰器
2020/08/14 Python
详解CSS的border边框属性及其在CSS3中的新特性
2016/05/10 HTML / CSS
在css3中background-clip属性与background-origin属性的用法介绍
2012/11/13 HTML / CSS
仓库主管的岗位职责
2013/12/04 职场文书
销售人员求职的自我评价分享
2014/03/15 职场文书
公司大门门卫岗位职责
2014/06/11 职场文书
赵乐秦在党的群众路线教育实践活动总结大会上的讲话稿
2014/10/25 职场文书
综合测评个人总结
2015/03/03 职场文书
预备党员考察表党小组意见
2015/06/01 职场文书
Ajax是什么?Ajax高级用法之Axios技术
2021/04/21 Javascript
使用python向MongoDB插入时间字段的操作
2021/05/18 Python
python_tkinter事件类型详情
2022/03/20 Python