PHP __autoload()方法真的影响性能吗?

2015-01-24信息快讯网

对于php性能问题,议论最多的就是__autoload()方法,很多人提到这个方法非常影响性能。还有人说opcode也能影响到__autoload()方法,所以针对这两点我做了个测试

介绍

对于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 curl_setopt 函数的相关应用及介绍
php抓取页面的几种方法详解
php错误级别的设置方法
php fsockopen伪造post与get方法的详解
VIM中设置php自动缩进为4个空格的方法详解
修改php.ini不生效问题解决方法(上传大于8M的文件)
eAccelerator的安装与使用详解
joomla jce editor 解决上传中文名文件失败问题
深入PHP autoload机制的详解
探讨PHP使用eAccelerator的API开发详解
PHP autoload与spl_autoload自动加载机制的深入理解
基于在生产环境中使用php性能测试工具xhprof的详解
spl_autoload_register与autoload的区别详解
记录mysql性能查询过程的使用方法
基于MySQL分区性能的详细介绍
php中serialize序列化与json性能测试的示例分析
php中使用__autoload()自动加载未定义类的实现代码
Zend的AutoLoad机制介绍
php中inlcude()性能对比详解
PHP中SESSION使用中的一点经验总结
phpmyadmin3 安装配置图解教程
MySQL的FIND_IN_SET函数使用方法分享
phpMyAdmin 链接表的附加功能尚未激活问题的解决方法(已测)
phpMyAdmin出现无法载入 mcrypt 扩展,请检查PHP配置的解决方法
PHP遍历数组的几种方法
php遍历数组的方法分享
Notice: Trying to get property of non-object problem(PHP)解决办法
PHP中将字符串转化为整数(int) intval() printf() 性能测试
php _autoload自动加载类与机制分析
PHP __autoload函数(自动载入类文件)的使用方法
PHP函数spl_autoload_register()用法和__autoload()介绍
PHP中创建空文件的代码[file_put_contents vs touch]
PHP spl_autoload_register实现自动加载研究
PHP性能优化工具篇Benchmark类调试执行时间
PHP性能优化准备篇图解PEAR安装
PHPWind与Discuz截取字符函数substrs与cutstr性能比较
PHP性能优化 产生高度优化代码
zend api扩展的php对象的autoload工具
©2014-2024 dbsqp.com