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

yipeiwu_com6年前PHP代码库
介绍

对于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中str_pad()函数用法分析

本文实例讲述了php中str_pad()函数用法。分享给大家供大家参考,具体如下: str_pad() 函数把字符串填充为新的长度。 语法: str_pad(string,ength,p...

php curl 获取https请求的2种方法

今天一个同事反映,使用curl发起https请求的时候报错:“SSL certificate problem, verify that the CA cert is OK. Detail...

PHP抽象类 介绍

在自然语言中,我们理解抽象的概念是,一个物体的一种大的描述,这种描述对某类物体来说是共有的特性。那么在PHP中也是一样的,我们把一个类进行抽象,可以指明类的一般行为,这个类应该是一个模板...

PHP实现的无限分类类库定义与用法示例【基于thinkPHP】

本文实例讲述了PHP实现的无限分类类库定义与用法。分享给大家供大家参考,具体如下: /* 功能:基于TP2.0的无限分类。 用法: 第一种用法,不采用数据库,可以不需要TP,例子如下...

php miniBB中文乱码问题解决方法

有时候一分钱难死英雄汉, 这话不假, 在技术上也是一样,如系统调试了半天, PHP就是不认mysql, 到头来只是忘了安装php5-mysql, miniBB因为简约而美丽,但国内使用人...