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 相关文章推荐
将文件夹压缩成zip文件的php代码
Dec 14 PHP
php文章内容分页并生成相应的htm静态页面代码
Jun 07 PHP
五款常用mysql slow log分析工具的比较分析
May 22 PHP
关于Zend Studio 配色方案插件的介绍
Jun 24 PHP
php中error与exception的区别及应用
Jul 28 PHP
PHP处理会话函数大总结
Aug 05 PHP
Codeigniter控制器controller继承问题实例分析
Jan 19 PHP
PHP基于自定义函数生成笛卡尔积的方法示例
Sep 30 PHP
PHP结合Vue实现滚动底部加载效果
Dec 17 PHP
php curl批处理实现可控并发异步操作示例
May 09 PHP
PHP单元测试配置与使用方法详解
Dec 27 PHP
php redis setnx分布式锁简单原理解析
Oct 23 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
十大催泪虐心动漫,你能坚持看到第几部?
2020/03/04 日漫
解析PHP中如何将数组变量写入文件
2013/06/06 PHP
解决tp5在nginx下修改配置访问的问题
2019/10/16 PHP
一些常用的JavaScript函数(json)附详细说明
2011/05/25 Javascript
iphone safari不支持position fixed的解决方法
2012/05/04 Javascript
Jquery getJSON方法详细分析
2013/12/26 Javascript
jquery的each方法使用示例分享
2014/03/25 Javascript
JS简单实现动画弹出层效果
2015/05/05 Javascript
浅谈利用JavaScript进行的DDoS攻击原理与防御
2015/06/04 Javascript
浅谈angular4 ng-content 中隐藏的内容
2017/08/18 Javascript
使用SVG基本操作API的实例讲解
2017/09/14 Javascript
vue2.0开发入门笔记之.vue文件的生成和使用
2017/09/19 Javascript
Vue-Access-Control 前端用户权限控制解决方案
2017/12/01 Javascript
Vue的轮播图组件实现方法
2018/03/03 Javascript
jQuery实现网页拼图游戏
2020/04/22 jQuery
node.JS路径解析之PATH模块使用方法详解
2020/02/06 Javascript
[01:45]IMBATV TI4前线报道-选手到达
2014/07/07 DOTA
Python2.x利用commands模块执行Linux shell命令
2016/03/11 Python
深入理解python中的闭包和装饰器
2016/06/12 Python
python实现闹钟定时播放音乐功能
2018/01/25 Python
python 检查文件mime类型的方法
2018/12/08 Python
Python地图绘制实操详解
2019/03/04 Python
详解python中的数据类型和控制流
2019/08/08 Python
python被修饰的函数消失问题解决(基于wraps函数)
2019/11/04 Python
如何使用Python脚本实现文件拷贝
2019/11/20 Python
使用wxpy实现自动发送微信消息功能
2020/02/28 Python
python基于Kivy写一个图形桌面时钟程序
2021/01/28 Python
美国百年历史早餐食品供应商:Wolferman’s
2017/01/18 全球购物
幼儿园教师奖惩制度
2014/02/01 职场文书
辅导员评语
2014/05/04 职场文书
升旗仪式演讲稿
2014/05/08 职场文书
电话客服工作职责
2014/07/27 职场文书
2015年八一建军节慰问信
2015/03/23 职场文书
廉洁自律心得体会2016
2016/01/13 职场文书
PHP对接阿里云虚拟号的实现(号码隐私保护)
2021/04/06 PHP
MySQL sql_mode的使用详解
2021/05/08 MySQL