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 ajax 分页类代码
Nov 13 PHP
如何获知PHP程序占用多少内存(memory_get_usage)
Sep 23 PHP
解析Linux下Varnish缓存的配置优化
Jun 20 PHP
PHP关于IE下的iframe跨域导致session丢失问题解决方法
Oct 10 PHP
php树型类实例
Dec 05 PHP
php二维码生成
Oct 19 PHP
PHP使用Pthread实现的多线程操作实例
Nov 14 PHP
thinkPHP交易详情查询功能详解
Dec 02 PHP
PHP new static 和 new self详解
Feb 19 PHP
PHP实现的分解质因数操作示例
Aug 01 PHP
php查询内存信息操作示例
May 09 PHP
php提供实现反射的方法和实例代码
Sep 17 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中修改浏览器的User-Agent来伪装你的浏览器和操作系统
2011/07/29 PHP
php查看请求头信息获取远程图片大小的方法分享
2013/12/25 PHP
更改localhost为其他名字的方法
2014/02/10 PHP
PHP以json或xml格式返回请求数据的方法
2018/05/31 PHP
在Laravel 的 Blade 模版中实现定义变量
2019/10/14 PHP
js 图片缩放(按比例)控制代码
2009/05/27 Javascript
深入理解JavaScript系列(2) 揭秘命名函数表达式
2012/01/15 Javascript
什么是json和jsonp,jQuery json实例详详细说明
2012/12/11 Javascript
在javascript中关于节点内容加强
2013/04/11 Javascript
js实现时间显示几天前、几小时前或者几分钟前的方法集锦
2015/05/29 Javascript
基于JQuery实现仿网易邮箱全屏动感滚动插件fullPage
2015/09/20 Javascript
js行号显示的文本框实现效果(兼容多种浏览器 )
2015/10/23 Javascript
JS实现焦点图轮播效果的方法详解
2016/12/19 Javascript
JS 组件系列之 bootstrap treegrid 组件封装过程
2017/04/28 Javascript
vue综合组件间的通信详解
2017/11/06 Javascript
JavaScript中构造函数与原型链之间的关系详解
2019/02/25 Javascript
小程序扫描普通链接二维码跳转小程序指定界面方法
2019/05/07 Javascript
vue 返回上一页,页面样式错乱的解决
2019/11/14 Javascript
JS中间件设计模式的深入探讨与实例分析
2020/04/11 Javascript
使用js获取身份证年龄的示例代码
2020/12/11 Javascript
python使用正则表达式提取网页URL的方法
2015/05/26 Python
python excel使用xlutils类库实现追加写功能的方法
2018/05/02 Python
mac下给python3安装requests库和scrapy库的实例
2018/06/13 Python
对numpy中的transpose和swapaxes函数详解
2018/08/02 Python
python在openstreetmap地图上绘制路线图的实现
2019/07/11 Python
Python实现i人事自动打卡的示例代码
2020/01/09 Python
使用Python将图片转正方形的两种方法实例代码详解
2020/04/29 Python
python Gabor滤波器讲解
2020/10/26 Python
美国当红的名品折扣网:Gilt Groupe
2016/08/15 全球购物
Java的for语句中break, continue和return的区别
2013/12/19 面试题
大四自我鉴定范文
2013/10/06 职场文书
学习新党章思想汇报
2014/01/09 职场文书
揭牌仪式主持词
2014/03/19 职场文书
教师节校长致辞
2015/07/31 职场文书
实例详解Python的进程,线程和协程
2022/03/13 Python
Android开发之WECHAT微信小程序路由跳转的两种形式
2022/04/12 Java/Android