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 相关文章推荐
让你同时上传 1000 个文件 (一)
Oct 09 PHP
PHP伪静态写法附代码
Jun 20 PHP
PHP5中使用DOM控制XML实现代码
May 07 PHP
使用PHP实现二分查找算法代码分享
Jun 24 PHP
php笔记之:php数组相关函数的使用
Apr 26 PHP
php读取目录及子目录下所有文件名的方法
Oct 20 PHP
php实现俄罗斯乘法实例
Mar 07 PHP
php实现对象克隆的方法
Jun 20 PHP
PHP之图片上传类实例代码(加了缩略图)
Jun 30 PHP
PHP Oauth授权和本地加密实现方法
Aug 12 PHP
PHP实现页面静态化的超简单方法
Sep 06 PHP
php array_key_exists() 与 isset() 的区别
Oct 24 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采用get获取url汉字出现乱码的解决方法
2014/11/13 PHP
PHP实现返回JSON和XML的类分享
2015/01/28 PHP
php实现简单爬虫的开发
2016/03/28 PHP
php格式化json函数示例代码
2016/05/12 PHP
[原创]php使用curl判断网页404(不存在)的方法
2016/06/23 PHP
PHP开发中csrf攻击的简单演示和防范
2017/05/07 PHP
php实现微信公众平台发红包功能
2018/06/14 PHP
JavaScript:new 一个函数和直接调用函数的区别分析
2013/07/10 Javascript
jquery实现树形二级菜单实例代码
2013/11/20 Javascript
javascript实现根据iphone屏幕方向调用不同样式表的方法
2015/07/13 Javascript
jQuery-1.9.1源码分析系列(十)事件系统之事件体系结构
2015/11/19 Javascript
JS实现批量上传文件并显示进度功能
2017/06/27 Javascript
React如何利用相对于根目录进行引用组件详解
2017/10/09 Javascript
深入浅析var,let,const的异同点
2018/08/07 Javascript
Vue中mintui的field实现blur和focus事件的方法
2018/08/25 Javascript
JS拖拽排序插件Sortable.js用法实例分析
2019/02/20 Javascript
JavaScript数据结构与算法之检索算法示例【二分查找法、计算重复次数】
2019/02/22 Javascript
微信小程序表单验证WxValidate的使用
2019/11/27 Javascript
js实现图片粘贴到网页
2019/12/06 Javascript
解决VUE-Router 同一页面第二次进入不刷新的问题
2020/07/22 Javascript
vuex 多模块时 模块内部的mutation和action的调用方式
2020/07/24 Javascript
[49:54]Ti4 循环赛第三日 LGD vs Titan
2014/07/12 DOTA
python遍历 truple list dictionary的几种方法总结
2016/09/11 Python
Python实现在线暴力破解邮箱账号密码功能示例【测试可用】
2017/09/06 Python
python3第三方爬虫库BeautifulSoup4安装教程
2018/06/19 Python
Python全局变量与局部变量区别及用法分析
2018/09/03 Python
python3.6生成器yield用法实例分析
2019/08/23 Python
Python类中的魔法方法之 __slots__原理解析
2019/08/26 Python
从一次项目重构说起CSS3自定义变量在项目的使用方法
2021/03/01 HTML / CSS
HTML5新标签兼容——> 的两种方法
2018/09/12 HTML / CSS
模具设计与制造专业应届生求职信
2013/10/18 职场文书
人力资源作业细则
2014/03/03 职场文书
办公自动化专业大学生职业规划书
2014/03/06 职场文书
2015年班级工作总结范文
2015/04/03 职场文书
谢师宴学生致辞
2015/07/27 职场文书
导游词之河北白洋淀
2020/01/15 职场文书