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 XPath对XML文件查找及修改实现代码
Jul 27 PHP
php报表之jpgraph柱状图实例代码
Aug 22 PHP
PHP中PDO的错误处理
Sep 04 PHP
PHP分页详细讲解(有实例)
Oct 30 PHP
php生成excel文件的简单方法
Feb 08 PHP
php+mysql实现用户注册登陆的方法
Jan 03 PHP
通过PHP自带的服务器来查看正则匹配结果的方法
Dec 24 PHP
Thinkphp和onethink实现微信支付插件
Apr 13 PHP
既简单又安全的PHP验证码 附调用方法
Jun 02 PHP
Yii2主题(Theme)用法详解
Jul 23 PHP
PHP定义字符串的四种方式详解
Feb 06 PHP
PHP7内核CGI与FastCGI详解
Apr 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
利用static实现表格的颜色隔行显示
2006/10/09 PHP
PHP判断是否有Get参数的方法
2014/05/05 PHP
smarty模板引擎基础知识入门
2015/03/30 PHP
php+ajax注册实时验证功能
2016/07/20 PHP
PHP安装memcache扩展的步骤讲解
2019/02/14 PHP
jQuery EasyUI API 中文文档 - Tree树使用介绍
2011/11/19 Javascript
jquery如何实现在加载完iframe的内容后再进行操作
2013/09/10 Javascript
使用Javascript实现选择下拉菜单互移并排序
2016/02/23 Javascript
js学使用setTimeout实现轮循动画
2017/07/17 Javascript
[js高手之路]图解javascript的原型(prototype)对象,原型链实例
2017/08/28 Javascript
vue实现PC端录音功能的实例代码
2019/06/05 Javascript
用vite搭建vue3应用的实现方法
2021/02/22 Vue.js
[00:52]DOTA2国际邀请赛
2020/02/21 DOTA
Python 文件操作实现代码
2009/10/07 Python
Python中内置数据类型list,tuple,dict,set的区别和用法
2015/12/14 Python
CentOS7下python3.7.0安装教程
2018/07/30 Python
Python使用gRPC传输协议教程
2018/10/16 Python
对django 2.x版本中models.ForeignKey()外键说明介绍
2020/03/30 Python
PyQt5实现登录页面
2020/05/30 Python
Python容器类型公共方法总结
2020/08/19 Python
python hmac模块验证客户端的合法性
2020/11/07 Python
Python爬虫之Selenium库的使用方法
2021/01/03 Python
Python第三方库安装缓慢的解决方法
2021/02/06 Python
Python3使用Selenium获取session和token方法详解
2021/02/16 Python
美国高级音响品牌:Master&Dynamic
2018/07/05 全球购物
MAC Cosmetics巴西官方网站:M·A·C彩妆
2019/04/18 全球购物
为什么要用EJB
2014/04/17 面试题
大学生自我鉴定范文模板
2014/01/21 职场文书
酒店行政人事部经理职务说明书
2014/02/26 职场文书
政治表现评语
2014/05/04 职场文书
简历自我评价:教师师德表现自我评价
2019/04/24 职场文书
2019年行政人事个人工作总结范本!
2019/07/19 职场文书
Python 中数组和数字相乘时的注意事项说明
2021/05/10 Python
人民币符号
2022/02/17 杂记
JAVA长虹键法之建造者Builder模式实现
2022/04/10 Java/Android
Win11任务栏无法正常显示 资源管理器不停重启的解决方法
2022/07/07 数码科技