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和XSL stylesheets转换XML文档
Oct 09 PHP
浅析php中jsonp的跨域实例
Jun 21 PHP
php中怎么搜索相关联数组键值及获取之
Oct 17 PHP
php与flash as3 socket通信传送文件实现代码
Aug 16 PHP
PHP中exec与system用法区别分析
Sep 22 PHP
php简单实现快速排序的方法
Apr 04 PHP
支持中文、字母、数字的PHP验证码
May 04 PHP
Yii 2.0实现联表查询加搜索分页的方法示例
Aug 02 PHP
详解关于php的xdebug配置(编辑器vscode)
Jan 29 PHP
PHP使用mongoclient简单操作mongodb数据库示例
Feb 08 PHP
tp5框架内使用tp3.2分页的方法分析
May 05 PHP
PHP进阶学习之类的自动加载机制原理分析
Jun 18 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 无法载入mysql扩展
2010/03/12 PHP
PHP封装分页函数实现文本分页和数字分页
2014/10/23 PHP
Laravel执行migrate命令提示:No such file or directory的解决方法
2016/03/16 PHP
php使用gd2绘制基本图形示例(直线、圆、正方形)
2017/02/15 PHP
js常见表单应用技巧
2008/01/09 Javascript
jQuery获取Select选择的Text和Value(详细汇总)
2013/01/25 Javascript
javascript模块化是什么及其优缺点介绍
2013/09/02 Javascript
jquery简单实现幻灯片的方法
2015/08/03 Javascript
Bootstrap每天必学之表格
2015/11/23 Javascript
jQuery基于扩展简单实现倒计时功能的方法
2016/05/14 Javascript
JS全局变量和局部变量最新解析
2016/06/24 Javascript
jQuery实现的右下角广告窗体跟随效果示例
2016/09/16 Javascript
Vue.js 2.0 和 React、Augular等其他前端框架大比拼
2016/10/08 Javascript
详解在 Angular 项目中添加 clean-blog 模板
2017/07/04 Javascript
深入理解ES6之数据解构的用法
2018/01/13 Javascript
Element-UI Table组件上添加列拖拽效果实现方法
2018/04/14 Javascript
一个手写的vue放大镜效果
2019/08/09 Javascript
JS图片懒加载的优点及实现原理
2020/01/10 Javascript
Element Backtop回到顶部的具体使用
2020/07/27 Javascript
vue data变量相互赋值后被实时同步的解决步骤
2020/08/05 Javascript
[01:05:12]2014 DOTA2国际邀请赛中国区预选赛 TongFu VS CIS-GAME
2014/05/21 DOTA
Python实例分享:快速查找出被挂马的文件
2014/06/08 Python
python命令行参数解析OptionParser类用法实例
2014/10/09 Python
python计算方程式根的方法
2015/05/07 Python
python最长回文串算法
2018/06/04 Python
Python根据文件名批量转移图片的方法
2018/10/21 Python
python通过文本在一个图中画多条线的实例
2020/02/21 Python
Pandas —— resample()重采样和asfreq()频度转换方式
2020/02/26 Python
python wsgiref源码解析
2021/02/06 Python
毕业生物理教师求职信
2013/10/17 职场文书
移动通信专业自荐信范文
2013/11/12 职场文书
电子商务专业学生职业生涯规划
2014/03/07 职场文书
2014年控辍保学工作总结
2014/12/08 职场文书
三好学生评语大全
2014/12/29 职场文书
幼儿园教师教学反思
2016/03/02 职场文书
创业计划书之校园跑腿公司
2019/09/24 职场文书