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

5年以前  |  阅读数:300 次  |  编程语言: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分页显示制作详细讲解
SSH 登录失败:Host key verification failed
获取IMSI
将二进制数据转为16进制以便显示
获取IMEI
文件下载
贪吃蛇
双位运算符
PHP自定义函数获取搜索引擎来源关键字的方法
Java生成UUID
发送邮件
年的日历图
提取后缀名
在Zeus Web Server中安装PHP语言支持
让你成为最历害的git提交人
Yii2汉字转拼音类的实例代码
再谈PHP中单双引号的区别详解
指定应用ID以获取对应的应用名称
Python 2与Python 3版本和编码的对比
php封装的page分页类完整实例