时时商务社区

标题: PHP __autoload()方法真的影响性能吗? [打印本页]

作者: wx_pylelnL4    时间: 2018-2-14 08:31

            介绍
对于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

截图:

启动界面:

eAccelerator(在php.ini文件中)配置情况:

  文件结构每一个Test文件都是6000多行代码的文件)

测试:带着eAccelerator缓存进行测试

测试代码:经过__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()

                         图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 __autoload函数(自动载入类文件)的使用方法
  • php _autoload自动加载类与机制分析
  • PHP的autoload机制的实现解析
  • 说说PHP的autoLoad自动加载机制
  • php中autoload的用法总结
  • php自动加载autoload机制示例分享
  • PHP中spl_autoload_register()和__autoload()区别分析
  • PHP之autoload运行机制实例分析
  • CodeIgniter配置之autoload.php自动加载用法分析
  • PHP中__autoload和Smarty冲突的简单解决方法
  • php自动载入类用法实例分析
            




    欢迎光临 时时商务社区 (http://bbs.4435.cn/) Powered by Discuz! X3.2