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 相关文章推荐
Bo-Blog专用的给Windows服务器的IIS Rewrite程序
Aug 26 PHP
PHP技术开发技巧分享
Mar 23 PHP
《PHP编程最快明白》第四讲:日期、表单接收、session、cookie
Nov 01 PHP
php使用fsockopen函数发送post,get请求获取网页内容的方法
Nov 15 PHP
PHP中如何使用session实现保存用户登录信息
Oct 20 PHP
全面了解PHP中的全局变量
Jun 17 PHP
Thinkphp3.2.3分页使用实例解析
Jul 28 PHP
PHP自定义错误用法示例
Sep 28 PHP
php制作基于xml的RSS订阅源功能示例
Feb 08 PHP
PHP获取文件扩展名的常用方法小结【五种方式】
Apr 27 PHP
php实现有序数组旋转后寻找最小值方法
Sep 27 PHP
Laravel实现通过blade模板引擎渲染视图
Oct 25 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和js交互一例-PHP教程,PHP应用
2007/01/03 PHP
实用函数2
2007/11/08 PHP
Kindeditor编辑器添加图片上传水印功能(php代码)
2017/08/03 PHP
JavaScript confirm选择判断
2008/10/18 Javascript
jQuery(非HTML5)可编辑表格实现代码
2012/12/11 Javascript
文本域光标操作的jQuery扩展分享
2014/03/10 Javascript
简介JavaScript中Math.LOG10E属性的使用
2015/06/14 Javascript
js验证框架实现代码分享
2016/05/18 Javascript
浅析location.href跨窗口调用函数
2016/11/22 Javascript
Angular.js实现注册系统的实例详解
2016/12/18 Javascript
JS无缝滚动效果实现方法分析
2016/12/21 Javascript
js求数组中全部数字可拼接出的最大整数示例代码
2017/08/25 Javascript
Vue2 模板template的四种写法总结
2018/02/23 Javascript
详解JS函数stack size计算方法
2018/06/18 Javascript
浅谈vue首屏加载优化
2018/06/28 Javascript
angular 用Observable实现异步调用的方法
2018/12/27 Javascript
jQuery三组基本动画与自定义动画操作实例总结
2020/05/09 jQuery
vue使用svg文件补充-svg放大缩小操作(使用d3.js)
2020/09/22 Javascript
vue使用swiper实现左右滑动切换图片
2020/10/16 Javascript
[36:37]2014 DOTA2华西杯精英邀请赛5 24 VG VS iG
2014/05/25 DOTA
[01:00:53]OG vs IG 2018国际邀请赛小组赛BO2 第一场 8.18
2018/08/19 DOTA
Python常用模块介绍
2014/11/21 Python
python 将字符串中的数字相加求和的实现
2019/07/18 Python
Python基于Tensor FLow的图像处理操作详解
2020/01/15 Python
Pytest单元测试框架如何实现参数化
2020/09/05 Python
python如何调用百度识图api
2020/09/29 Python
python工具——Mimesis的简单使用教程
2021/01/16 Python
CSS3教程(5):网页背景图片
2009/04/02 HTML / CSS
HTML5的postMessage的使用手册
2018/12/19 HTML / CSS
Hawes & Curtis官网:英国经典品牌
2019/07/27 全球购物
公司员工的自我评价范例
2013/11/01 职场文书
优秀求职自荐信怎样写
2013/12/18 职场文书
《鸟的天堂》教学反思
2014/02/27 职场文书
医院中层管理人员培训心得体会
2016/01/11 职场文书
话题作文之财富(600字)
2019/12/03 职场文书
利用Matlab绘制各类特殊图形的实例代码
2021/07/16 Python