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调用Linux的命令行执行文件压缩命令
Jan 27 PHP
解析PHP汉字转换拼音的类
Jun 18 PHP
解析centos中Apache、php、mysql 默认安装路径
Jun 25 PHP
Thinkphp中的volist标签用法简介
Jun 18 PHP
php获取从html表单传递数组的方法
Mar 20 PHP
如何用PHP来实现一个动态Web服务器
Jul 29 PHP
PHP编写RESTful接口的方法
Feb 21 PHP
php实现跨域提交form表单的方法【2种方法】
Oct 17 PHP
详解PHP处理密码的几种方式
Nov 30 PHP
PHP输出多个元素的排列或组合的方法
Mar 14 PHP
PHP使用PhpSpreadsheet操作Excel实例详解
Mar 26 PHP
PHP 超级全局变量相关总结
Jun 30 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 email邮箱正则
2008/10/08 PHP
php图片处理函数获取类型及扩展名实例
2014/11/19 PHP
PHP自带方法验证邮箱、URL、IP是否合法的函数
2016/12/08 PHP
打开超链需要“确认”对话框的方法
2007/03/08 Javascript
自定义jQuery选项卡插件实例
2013/03/27 Javascript
Script标签与访问HTML页面详解
2014/01/10 Javascript
推荐6款基于jQuery实现图片效果插件
2014/12/07 Javascript
jQuery中removeProp()方法用法实例
2015/01/05 Javascript
详解javascript中的事件处理
2015/11/06 Javascript
javascript手风琴下拉菜单实现代码
2015/11/12 Javascript
体验jQuery和AngularJS的不同点及AngularJS的迷人之处
2016/02/02 Javascript
Nodejs中session的简单使用及通过session实现身份验证的方法
2016/02/04 NodeJs
React.js入门学习第一篇
2016/03/30 Javascript
jQuery简单实现上下,左右滑动的方法
2016/06/01 Javascript
jquery 实现滚动条下拉时无限加载的简单实例
2016/06/01 Javascript
jquery根据一个值来选中select下的option实例代码
2016/08/29 Javascript
JS封装的三级联动菜单(使用时只需要一行js代码)
2016/10/24 Javascript
正则表达式,替换所有HTML标签的简单实例
2016/11/28 Javascript
原生JS轮播图插件
2017/02/09 Javascript
ES6中Generator与异步操作实例分析
2017/03/31 Javascript
jQuery 添加样式属性的优先级别方法(推荐)
2017/06/08 jQuery
jQuery选择器之子元素过滤选择器
2017/09/28 jQuery
关于axios不能使用Vue.use()浅析
2018/01/12 Javascript
如何在基于vue-cli的项目自定义打包环境
2018/11/10 Javascript
ES6中new Function()语法及应用实例分析
2020/02/19 Javascript
JQuery获得内容和属性方法解析
2020/05/30 jQuery
[02:00]DAC2018主宣传片——龙征四海,剑问东方
2018/03/20 DOTA
[00:57]英雄,你的补给到了!
2020/11/13 DOTA
Python实现遍历目录的方法【测试可用】
2017/03/22 Python
Python常见内置高效率函数用法示例
2018/07/31 Python
ubuntu 安装pyqt5和卸载pyQt5的方法
2020/03/24 Python
python不到50行代码完成了多张excel合并的实现示例
2020/05/28 Python
StubHub智利:购买和出售您的门票
2016/11/23 全球购物
西班牙多品牌鞋店连锁店:Krack
2018/11/30 全球购物
报到证丢失证明
2014/01/11 职场文书
2019年怎样才能撰写出优秀的自荐信
2019/03/25 职场文书