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 相关文章推荐
apache+php完美解决301重定向的两种方法
Jun 08 PHP
PHP中error_reporting()函数的用法(修改PHP屏蔽错误)
Jul 01 PHP
解析thinkphp中的M()与D()方法的区别
Jun 22 PHP
Symfony2框架学习笔记之HTTP Cache用法详解
Mar 18 PHP
PHP实现加密文本文件并限制特定页面的存取的效果
Oct 21 PHP
使用Yii2实现主从数据库设置
Nov 20 PHP
php中final关键字用法分析
Dec 07 PHP
php base64 编码与解码实例代码
Mar 21 PHP
Laravel5.5新特性之友好报错以及展示详解
Aug 13 PHP
PHP开发之归档格式phar文件概念与用法详解【创建,使用,解包还原提取】
Nov 17 PHP
laravel框架分组控制器和分组路由实现方法示例
Jan 25 PHP
解决thinkphp6(tp6)在状态码500下不报错,或者显示错误“Malformed UTF-8 characters”的问题
Apr 01 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
ThinkPHP之M方法实例详解
2014/06/20 PHP
PHP静态文件生成类实例
2014/11/29 PHP
php传值和传引用的区别点总结
2019/11/19 PHP
基于prototype扩展的JavaScript常用函数库
2010/11/30 Javascript
jQuery中的pushStack实现原理和应用实例
2015/02/03 Javascript
基于bootstrap3和jquery的分页插件
2015/07/31 Javascript
jQuery中借助deferred来请求及判断AJAX加载的实例讲解
2016/05/24 Javascript
jQuery获取单击节点对象的方法
2016/06/02 Javascript
JS控制静态页面之间传递参数获取参数并应用的简单实例
2016/08/10 Javascript
基于rem的移动端响应式适配方案(详解)
2017/07/07 Javascript
基于node下的http小爬虫的示例代码
2018/01/11 Javascript
微信小程序实现星级评分和展示
2018/07/05 Javascript
trackingjs+websocket+百度人脸识别API实现人脸签到
2018/11/26 Javascript
微信小程序使用wxParse解析html的方法示例
2019/01/17 Javascript
Nuxt.js实战和配置详解
2019/08/05 Javascript
vue-router的hooks用法详解
2020/06/08 Javascript
[07:20]2018DOTA2国际邀请赛寻真——逐梦Mineski
2018/08/10 DOTA
[52:05]EG vs OG 2019国际邀请赛小组赛 BO2 第二场 8.16
2019/08/18 DOTA
python opencv实现图片旋转矩形分割
2018/07/26 Python
在scrapy中使用phantomJS实现异步爬取的方法
2018/12/17 Python
Python对象与引用的介绍
2019/01/24 Python
python 一个figure上显示多个图像的实例
2019/07/08 Python
一行python实现树形结构的方法
2019/08/09 Python
Django如何实现上传图片功能
2019/08/16 Python
sklearn和keras的数据切分与交叉验证的实例详解
2020/06/19 Python
在 Python 中使用 MQTT的方法
2020/08/18 Python
python requests库的使用
2021/01/06 Python
python3判断IP地址的方法
2021/03/04 Python
html5将图片转换成base64的实例代码
2016/09/21 HTML / CSS
Wedgwood英国官方网站:英式精致骨瓷餐具、礼品与生活精品,源于1759年
2019/09/02 全球购物
俄罗斯最大的在线珠宝大卖场:Nebo
2019/12/08 全球购物
中专生求职自荐信范文
2013/12/22 职场文书
房地产财务管理制度
2014/02/02 职场文书
数学国培研修感言
2014/02/13 职场文书
作风建设演讲稿
2014/05/23 职场文书
面试中老生常谈的MySQL问答集锦夯实基础
2022/03/13 MySQL