PHP __autoload()方法真的影响性能吗?
2012-03-30 00:00
519 查看
介绍
对于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
截图:
![](https://oscdn.geek-share.com/Uploads/Images/Content/2015/2015030180/54b6fc6eb7691491a25dad289f8ca01f.png)
启动界面:
![](https://oscdn.geek-share.com/Uploads/Images/Content/2015/2015030192/13ef8cf637e32c2105c336d790dfb335.png)
eAccelerator(在php.ini文件中)配置情况:
![](https://oscdn.geek-share.com/Uploads/Images/Content/2015/2015030192/8b5eecc9ffa55e3d007ea71b702e1eee.png)
文件结构:(每一个Test文件都是6000多行代码的文件)
![](https://oscdn.geek-share.com/Uploads/Images/Content/2015/2015030192/bec32ef06ac39c28401be7d8683340d6.png)
测试:带着eAccelerator缓存进行测试
测试代码:经过__autoload加载
![](https://oscdn.geek-share.com/Uploads/Images/Content/2015/2015030192/f142289abac52ed1dfd1a30d506a7b1a.png)
图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()
![](https://oscdn.geek-share.com/Uploads/Images/Content/2015/2015030192/1208cb7f026e084e6f7effb75c0b9005.png)
图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()方法,很多人提到这个方法非常影响性能。还有人说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
截图:
![](https://oscdn.geek-share.com/Uploads/Images/Content/2015/2015030180/54b6fc6eb7691491a25dad289f8ca01f.png)
启动界面:
![](https://oscdn.geek-share.com/Uploads/Images/Content/2015/2015030192/13ef8cf637e32c2105c336d790dfb335.png)
eAccelerator(在php.ini文件中)配置情况:
![](https://oscdn.geek-share.com/Uploads/Images/Content/2015/2015030192/8b5eecc9ffa55e3d007ea71b702e1eee.png)
文件结构:(每一个Test文件都是6000多行代码的文件)
![](https://oscdn.geek-share.com/Uploads/Images/Content/2015/2015030192/bec32ef06ac39c28401be7d8683340d6.png)
测试:带着eAccelerator缓存进行测试
测试代码:经过__autoload加载
![](https://oscdn.geek-share.com/Uploads/Images/Content/2015/2015030192/f142289abac52ed1dfd1a30d506a7b1a.png)
图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()
![](https://oscdn.geek-share.com/Uploads/Images/Content/2015/2015030192/1208cb7f026e084e6f7effb75c0b9005.png)
图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代码性能分析方法
- 介绍几种PHP站点性能的优化方法
- PHP 使用__autoload()方法避免频繁使用require()函数。
- PHP生成随机字符的4种方法及性能对比
- 50个PHP程序性能优化的方法
- PHP中__autoload与smarty3冲突的解决方法
- PHP生成随机密码的4种方法及性能对比
- 影响PHP模块性能的关键因素
- PHP生成随机密码的4种方法及性能对比
- PHP生成随机密码的4种方法及性能对比
- 优化php效率,提高php性能的一些方法:
- PHP中autoload的使用方法
- PHP NOTICE级错误提示对程序性能影响的研究
- PHP Class Autoload 的几种方法
- 从性能方面考虑PHP下载远程文件的3种方法
- php中__autoload()方法详解
- PHP __autoload()方法详解