PHP __autoload()方法真的影响性能吗?


Posted in PHP onMarch 30, 2012

介绍

对于php性能问题,议论最多的就是__autoload()方法,很多人提到这个方法非常影响性能。还有人说opcode也能影响到__autoload()方法,所以针对这两点我做了个测试。
最终发现__autoload方法在性能方面的影响不是很大的。

环境

PHP:5.3.9 ——以fastcgi模式启动
Nginx:1.1.12
eaccelerator:0.9.6.1

 
最终发现__autoload方法在性能方面的影响不是很大的。

 环境
 
 PHP:5.3.9 ——以fastcgi模式启动
 Nginx:1.1.12
 eaccelerator:0.9.6.1
 
截图:

PHP __autoload()方法真的影响性能吗?

 启动界面:

PHP __autoload()方法真的影响性能吗?

 eAccelerator(在php.ini文件中)配置情况:

PHP __autoload()方法真的影响性能吗?

  文件结构:(每一个Test文件都是6000多行代码的文件)

PHP __autoload()方法真的影响性能吗?

 测试:带着eAccelerator缓存进行测试
 
测试代码:经过__autoload加载

PHP __autoload()方法真的影响性能吗?

 

       图1

我在浏览器里通过刷新得到的结果分别如下:
Total Time:0.10401391983032
Total Time:0.10252094268799
Total Time:0.095267057418823
Total Time:0.10013008117676
Total Time:0.096842050552368
Total Time:0.097998142242432
Total Time:0.10348510742188
Total Time:0.096648931503296
 
测试:不经过__autoload()

PHP __autoload()方法真的影响性能吗?

                         图2

测试结果——通过刷浏览器
Total Time:0.10309100151062
Total Time:0.10285210609436
Total Time:0.10154414176941
Total Time:0.097845792770386
Total Time:0.099545001983643
Total Time:0.10166597366333
 
最终看到的结果:autoload方法没有出现明显的性能下降
 
 测试:取消eAccelerator缓存进行测试
 
 图1的测试结果
Total Time:0.24992394447327
Total Time:0.25681900978088
Total Time:0.25327301025391
Total Time:0.22580695152283
Total Time:0.22656512260437
Total Time:0.22530484199524
Total Time:0.23080611228943
 
 图2的测试结果
Total Time:0.23054909706116
Total Time:0.22633790969849
Total Time:0.23442888259888
Total Time:0.2350070476532
Total Time:0.22897601127625
Total Time:0.23207712173462

 __autoload()方法在性能上还是没有明显的影响。

 总结
 
通过上面的两组实验得出:
1>__autoload方法没有明显的性能损失。所以大家不要介于使用__autoload方法。
2>opcode对代码的影响是比较大的,明显使用opcode的时候,php代码执行速度提高了将近2倍多。
PHP 相关文章推荐
php全排列递归算法代码
Oct 09 PHP
PHP实现邮件群发的源码
Jun 18 PHP
php根据身份证号码计算年龄的实例代码
Jan 18 PHP
yii框架配置默认controller和action示例
Apr 30 PHP
PHP 抽象方法与抽象类abstract关键字介绍及应用
Oct 16 PHP
php中debug_backtrace、debug_print_backtrace和匿名函数用法实例
Dec 01 PHP
php+mysqli实现批量替换数据库表前缀的方法
Dec 29 PHP
详解PHP实现执行定时任务
Dec 21 PHP
phpcms的分类名称和类别名称的调用
Jan 05 PHP
PHPUnit测试私有属性和方法功能示例
Jun 12 PHP
PHP+jQuery实现即点即改功能示例
Feb 21 PHP
PHP基于array_unique实现二维数组去重
Jul 14 PHP
phpmyadmin3 安装配置图解教程
Mar 29 #PHP
php 注释规范
Mar 29 #PHP
php 计划任务 检测用户连接状态
Mar 29 #PHP
MySQL的FIND_IN_SET函数使用方法分享
Mar 27 #PHP
php提示无法加载或mcrypt没有找到 PHP 扩展 mbstring解决办法
Mar 27 #PHP
phpMyAdmin 链接表的附加功能尚未激活问题的解决方法(已测)
Mar 27 #PHP
phpMyAdmin出现无法载入 mcrypt 扩展,请检查PHP配置的解决方法
Mar 26 #PHP
You might like
PHP新手NOTICE错误常见解决方法
2011/12/07 PHP
php文件夹与文件目录操作函数介绍
2013/09/09 PHP
php多维数组去掉重复值示例分享
2014/03/02 PHP
yii2分页之实现跳转到具体某页的实例代码
2016/06/02 PHP
javascript addBookmark 加入收藏 多浏览器兼容
2009/08/15 Javascript
jQuery+ajax实现顶一下,踩一下效果
2010/07/17 Javascript
javascript 广告后加载,加载完页面再加载广告
2010/11/25 Javascript
js中arguments,caller,callee,apply的用法小结
2014/01/28 Javascript
使用GruntJS构建Web程序之构建篇
2014/06/04 Javascript
javascipt:filter过滤介绍及使用
2014/09/10 Javascript
jQuery封装的屏幕居中提示信息代码
2016/06/08 Javascript
分享JS数组求和与求最大值的方法
2016/08/11 Javascript
js捕捉键盘事件和按键键值的方法
2016/10/10 Javascript
简单学习vue指令directive
2016/11/03 Javascript
Angular2 PrimeNG分页模块学习
2017/01/14 Javascript
Node连接mysql数据库方法介绍
2017/02/07 Javascript
微信小程序Redux绑定实例详解
2017/06/07 Javascript
Vue2.0用户权限控制解决方案
2017/11/29 Javascript
JavaScript执行环境及作用域链实例分析
2018/08/01 Javascript
ES6 Object属性新的写法实例小结
2019/06/25 Javascript
vue 集成jTopo 处理方法
2019/08/07 Javascript
Vue 组件的挂载与父子组件的传值实例
2020/09/02 Javascript
Django自定义manage命令实例代码
2018/02/11 Python
python 自动轨迹绘制的实例代码
2019/07/05 Python
Python协程操作之gevent(yield阻塞,greenlet),协程实现多任务(有规律的交替协作执行)用法详解
2019/10/14 Python
python实现对变位词的判断方法
2020/04/05 Python
Html5调用手机摄像头并实现人脸识别的实现
2018/12/21 HTML / CSS
亚洲最大的运动鞋寄售店:KicksCrew
2020/11/26 全球购物
总裁岗位职责
2013/12/04 职场文书
2014三八妇女节活动总结
2014/03/01 职场文书
五一手机促销方案
2014/03/08 职场文书
2014年采购部工作总结
2014/11/20 职场文书
活动总结书怎么写
2015/05/11 职场文书
CSS filter 有什么神奇用途
2021/05/25 HTML / CSS
利用Python+OpenCV三步去除水印
2021/05/28 Python
Python anaconda安装库命令详解
2021/10/16 Python