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 相关文章推荐
一个用php3编写的简单计数器
Oct 09 PHP
关于php正则匹配汉字的方法介绍
Apr 25 PHP
php不允许用户提交空表单(php空值判断)
Nov 12 PHP
PHP生成不重复随机数的方法汇总
Nov 19 PHP
php查找指定目录下指定大小文件的方法
Nov 28 PHP
php数组索引与键值操作技巧实例分析
Jun 24 PHP
php去掉文件前几行的方法
Jul 29 PHP
PHP 开发者该知道的 5 个 Composer 小技巧
Feb 03 PHP
php实现xml与json之间的相互转换功能实例
Jul 07 PHP
针对多用户实现头像上传功能PHP代码 适用于登陆页面制作
Aug 17 PHP
Laravel5.1自定义500错误页面示例
Oct 09 PHP
ThinkPHP5 验证器的具体使用
May 31 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
LINUX下PHP程序实现WORD文件转化为PDF文件的方法
2016/05/13 PHP
php的socket编程详解
2016/11/20 PHP
laravel 中如何使用ajax和vue总结
2017/08/16 PHP
ExtJS 设置级联菜单的默认值
2010/06/13 Javascript
jquery实现的让超出显示范围外的导航自动固定屏幕最顶上
2011/09/22 Javascript
Jquery刷新页面背景图片随机变换的实现方法
2013/03/15 Javascript
Javascript基础教程之数据类型 (字符串 String)
2015/01/18 Javascript
jQuery模拟360浏览器切屏效果幻灯片(附demo源码下载)
2016/01/29 Javascript
jquery ajax双击div可直接修改div中的内容
2016/03/04 Javascript
基于jQuery实现仿百度首页选项卡切换效果
2016/05/29 Javascript
详解AngularJs中$sce与$sceDelegate上下文转义服务
2016/09/21 Javascript
jQuery图片加载显示loading效果
2016/11/04 Javascript
完美解决IE不支持Data.parse()的问题
2016/11/24 Javascript
拖动时防止选中
2017/02/03 Javascript
js实现水平滚动菜单导航
2017/07/21 Javascript
关于Webpack dev server热加载失败的解决方法
2018/02/22 Javascript
详解vue axios用post提交的数据格式
2018/08/07 Javascript
vue在手机中通过本机IP地址访问webApp的方法
2018/08/15 Javascript
javascript实现留言板功能
2020/02/08 Javascript
[02:23]2014DOTA2国际邀请赛中国战队回顾
2014/08/01 DOTA
[02:12]2019完美世界全国高校联赛(春季赛)报名开启
2019/03/01 DOTA
python检测服务器是否正常
2014/02/16 Python
在Python中使用PIL模块处理图像的教程
2015/04/29 Python
python中列表和元组的区别
2017/12/18 Python
python删除过期log文件操作实例解析
2018/01/31 Python
Python+Django搭建自己的blog网站
2018/03/13 Python
python 单线程和异步协程工作方式解析
2019/09/28 Python
Flask框架搭建虚拟环境的步骤分析
2019/12/21 Python
通过Python pyecharts输出保存图片代码实例
2020/11/25 Python
西尔斯百货官网:Sears
2016/09/06 全球购物
美国性感女装网站:bebe
2017/03/04 全球购物
亚洲独特体验旅游专家:eOasia
2018/08/15 全球购物
审计工作个人的自我评价
2013/12/25 职场文书
受伤赔偿协议书
2014/09/24 职场文书
茶楼服务员岗位职责
2015/02/09 职场文书
环境卫生标语
2015/08/03 职场文书