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 相关文章推荐
图片存储与浏览一例(Linux+Apache+PHP+MySQL)
Oct 09 PHP
WINXP下apache+php4+mysql
Nov 25 PHP
IP攻击升级,程序改进以对付新的攻击
Nov 23 PHP
php 注册时输入信息验证器的实现详解
Jul 05 PHP
浅析php与数据库代码开发规范
Aug 08 PHP
php有道翻译api调用方法实例
Dec 22 PHP
thinkPHP查询方式小结
Jan 09 PHP
PHP中__autoload和Smarty冲突的简单解决方法
Apr 08 PHP
PHP __call()方法实现委托示例
May 20 PHP
PHP 范围解析操作符(::)用法分析【访问静态成员和类常量】
Apr 14 PHP
php判断数组是否为空的实例方法
May 10 PHP
PHP实现计算器小功能
Aug 28 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+js实现图片的上传、裁剪、预览、提交示例
2013/08/27 PHP
对xmlHttp对象方法和属性的理解
2011/01/17 Javascript
javascript实现的DES加密示例
2013/10/30 Javascript
JavaScript 学习笔记之数据类型
2015/01/14 Javascript
javascript格式化指定日期对象的方法
2015/04/21 Javascript
JS建造者模式基本用法实例分析
2015/06/30 Javascript
JavaScript实现获取某个元素相邻兄弟节点的prev与next方法
2016/01/25 Javascript
Bootstrap Paginator分页插件与ajax相结合实现动态无刷新分页效果
2016/05/27 Javascript
jQuery Easyui使用(二)之可折叠面板动态加载无效果的解决方法
2016/08/17 Javascript
JS实现生成由字母与数字组合的随机字符串功能详解
2018/05/25 Javascript
js实现倒计时器自定义时间和暂停
2019/02/25 Javascript
详解Vue源码中一些util函数
2019/04/24 Javascript
antd多选下拉框一行展示的实现方式
2020/10/31 Javascript
python使用sorted函数对列表进行排序的方法
2015/04/04 Python
使用url_helper简化Python中Django框架的url配置教程
2015/05/30 Python
Python 爬虫学习笔记之单线程爬虫
2016/09/21 Python
python实现list元素按关键字相加减的方法示例
2017/06/09 Python
python实现人脸识别代码
2017/11/08 Python
python实现跨excel的工作表sheet之间的复制方法
2018/05/03 Python
详解django中使用定时任务的方法
2018/09/27 Python
Python实现打砖块小游戏代码实例
2019/05/18 Python
Python爬虫动态ip代理防止被封的方法
2019/07/07 Python
python实现七段数码管和倒计时效果
2019/11/23 Python
django框架中间件原理与用法详解
2019/12/10 Python
基于Python下载网络图片方法汇总代码实例
2020/06/24 Python
跑鞋、网球鞋、网球拍、服装及装备:Holabird Sports
2016/09/19 全球购物
Timex手表官网:美国运动休闲手表品牌
2017/01/28 全球购物
美国踏板车和轻便摩托车销售网站:Mega Motor Madness
2020/02/26 全球购物
OnePlus加拿大官网:中国国际化手机品牌
2020/10/13 全球购物
销售业务员岗位职责
2014/01/29 职场文书
《花瓣飘香》教学反思
2014/04/15 职场文书
班级读书活动总结
2014/06/30 职场文书
2014年国庆标语
2014/06/30 职场文书
子女赡养老人协议书
2016/03/23 职场文书
pygame面向对象的飞行小鸟实现(Flappy bird)
2021/04/01 Python
Python词云的正确实现方法实例
2021/05/08 Python