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 相关文章推荐
一个ORACLE分页程序,挺实用的.
Oct 09 PHP
php中判断一个字符串包含另一个字符串的方法
Mar 19 PHP
php checkbox复选框值的获取与checkbox默认值输出方法
May 15 PHP
php实现格式化多行文本为Js可用格式
Apr 15 PHP
php递归遍历删除文件的方法
Apr 17 PHP
php实现根据IP地址获取其所在省市的方法
Apr 30 PHP
PHP中filter函数校验数据的方法详解
Jul 31 PHP
详解Window7 下开发php扩展
Dec 31 PHP
Joomla数据库操作之JFactory::getDBO用法
May 05 PHP
PHP引用返回用法示例
May 28 PHP
PHP+Ajax 检测网络是否正常实例详解
Dec 16 PHP
Laravel框架路由设置与使用示例
Jun 12 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将两个关联数组合并函数提高函数效率
2014/03/18 PHP
php中引用符号(&)的使用详细介绍
2016/12/06 PHP
laravel 事件/监听器实例代码
2019/04/12 PHP
Javascript 更新 JavaScript 数组的 uniq 方法
2008/01/23 Javascript
Javascript表达式中连续的 && 和 || 之赋值区别
2010/10/17 Javascript
js中AppendChild与insertBefore的用法详细解析
2013/12/16 Javascript
排序算法的javascript实现与讲解(99js手记)
2014/09/28 Javascript
第四篇Bootstrap网格系统偏移列和嵌套列
2016/06/21 Javascript
js实现类bootstrap模态框动画
2017/02/07 Javascript
使用electron将vue-cli项目打包成exe的方法
2018/09/29 Javascript
你应该了解的JavaScript Array.map()五种用途小结
2018/11/14 Javascript
JS扁平化输出数组的2种方法解析
2019/09/17 Javascript
JS实现贪吃蛇游戏
2019/11/15 Javascript
如何正确解决VuePress本地访问出现资源报错404的问题
2020/12/03 Vue.js
对python sklearn one-hot编码详解
2018/07/10 Python
10 行 Python 代码教你自动发送短信(不想回复工作邮件妙招)
2018/10/11 Python
python pandas模块基础学习详解
2019/07/03 Python
Python pandas用法最全整理
2019/08/04 Python
Django 自定义404 500等错误页面的实现
2020/03/08 Python
django rest framework使用django-filter用法
2020/07/15 Python
Python二元算术运算常用方法解析
2020/09/15 Python
python爬虫scrapy基于CrawlSpider类的全站数据爬取示例解析
2021/02/20 Python
CSS3 中filter(滤镜)属性使用详解
2020/04/07 HTML / CSS
让IE9以下版本的浏览器兼容HTML5的方法
2014/03/12 HTML / CSS
HTML5 直播疯狂点赞动画实现代码 附源码
2020/04/14 HTML / CSS
Pharmacy Online中文直邮网站:澳洲大型药房
2020/06/27 全球购物
大专毕业自我鉴定
2014/02/04 职场文书
2014信息公开实施方案
2014/02/22 职场文书
机电一体化专业毕业生自荐信
2014/06/19 职场文书
简单租房协议书
2014/10/21 职场文书
群众路线教育实践活动方案
2014/10/31 职场文书
酒桌上的祝酒词
2015/08/12 职场文书
护士旷工检讨书
2015/08/15 职场文书
Pytorch使用shuffle打乱数据的操作
2021/05/20 Python
Python 游戏大作炫酷机甲闯关游戏爆肝数千行代码实现案例进阶
2021/10/16 Python
SpringBoot Http远程调用的方法
2022/08/14 Java/Android