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 相关文章推荐
WML,Apache,和 PHP 的介绍
Oct 09 PHP
支持oicq头像的留言簿(二)
Oct 09 PHP
第十二节--类的自动加载
Nov 16 PHP
PHP闭包(Closure)使用详解
May 02 PHP
详解PHP内置访问资源的超时时间 time_out file_get_contents read_file
Jun 03 PHP
php实现mysql数据库连接操作及用户管理
Nov 08 PHP
PHP中的密码加密的解决方案总结
Oct 26 PHP
在 Laravel 中 “规范” 的开发短信验证码发送功能
Oct 26 PHP
PHP实现的防止跨站和xss攻击代码【来自阿里云】
Jan 29 PHP
PHP 访问数据库配置通用方法(json)
May 20 PHP
Django中通过定时任务触发页面静态化的处理方式
Aug 29 PHP
php引用传递
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
让你的WINDOWS同时支持MYSQL4,MYSQL4.1,MYSQL5X
2006/12/06 PHP
PHP判断是否为空的几个函数对比
2015/04/21 PHP
CodeIgniter配置之SESSION用法实例分析
2016/01/19 PHP
php自动加载方式集合
2016/04/04 PHP
PHP中引用类型和值类型功能与用法示例
2019/02/26 PHP
php实现登录页面的简单实例
2019/09/29 PHP
Dom 是什么的详细说明
2010/10/25 Javascript
DWZ刷新dialog解决方法
2013/03/03 Javascript
jQuery实现图片放大预览实现原理及代码
2013/09/12 Javascript
jQuery使用hide方法隐藏指定元素class样式用法实例
2015/03/30 Javascript
jQuery+HTML5美女瀑布流布局实现方法
2015/09/21 Javascript
JS实现Fisheye效果动感放大菜单代码
2015/10/21 Javascript
javascript中的replace函数(带注释demo)
2018/01/07 Javascript
vue移动端项目缓存问题实践记录
2018/10/29 Javascript
vue使用代理解决请求跨域问题详解
2019/07/24 Javascript
vue设置一开始进入的页面教程
2019/10/28 Javascript
vue-video-player 解决微信自动全屏播放问题(横竖屏导致样式错乱问题)
2020/02/25 Javascript
小程序实现上下切换位置
2020/11/16 Javascript
python str与repr的区别
2013/03/23 Python
python生成日历实例解析
2014/08/21 Python
Windows系统下使用flup搭建Nginx和Python环境的方法
2015/12/25 Python
浅谈python中对于json写入txt文件的编码问题
2018/06/07 Python
Python实现读取机器硬件信息的方法示例
2018/06/09 Python
在scrapy中使用phantomJS实现异步爬取的方法
2018/12/17 Python
python 图像处理画一个正弦函数代码实例
2019/09/10 Python
python 内置函数汇总详解
2019/09/16 Python
MNIST数据集转化为二维图片的实现示例
2020/01/10 Python
Scrapy框架基本命令与settings.py设置
2020/02/06 Python
在jupyter notebook中调用.ipynb文件方式
2020/04/14 Python
超30万乐谱下载:Musicnotes.com
2016/09/24 全球购物
PHP面试题集
2016/12/18 面试题
污水厂厂长岗位职责
2014/01/04 职场文书
刘胡兰的英雄事迹材料
2014/02/11 职场文书
学校班班通实施方案
2014/06/11 职场文书
婚礼男方父母答谢词
2015/09/29 职场文书
集英社今正式宣布 成立游戏公司“集英社Games”
2022/03/31 其他游戏