介绍

最受关注的PHP的性能问题是__autoload()方法,很多人说这种方法对性能有很大的影响。有人说码也可以影响__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文件)配置:



文件结构:(每个测试文件是一个超过6000行代码的文件)




测试:用eAccelerator缓存测试

测试代码:荷载通过__autoload






图1
我在浏览器中得到的结果如下:
总时间:0.10401391983032
总时间:0.10252094268799
总时间:0.095267057418823
总时间:0.10013008117676
总时间:0.096842050552368
总时间:0.097998142242432
总时间:0.10348510742188
总时间:0.096648931503296

测试:没有__autoload()




图2
测试结果——通过笔刷浏览器
总时间:0.10309100151062
总时间:0.10285210609436
总时间:0.10154414176941
总时间:0.097845792770386
总时间:0.099545001983643
总时间:0.10166597366333

最终结果:自动加载的方法并没有表现出显着的性能下降

测试:测试取消eAccelerator缓存

图1的测试结果
总时间:0.24992394447327
总时间:0.25681900978088
总时间:0.25327301025391
总时间:0.22580695152283
总时间:0.22656512260437
总时间:0.22530484199524
总时间:0.23080611228943

图2的测试结果
总时间:0.23054909706116
总时间:0.22633790969849
总时间:0.23442888259888
总时间:0.2350070476532
总时间:0.22897601127625
总时间:0.23207712173462

的__autoload()方法对性能没有明显影响。
总结

通过以上两组实验,结果如下:
1 > __autoload方法没有明显的性能损失。所以你不必使用__autoload方法。
2 >操作码编码上的影响是比较大的,当明确使用操作,PHP代码的执行速度提高近2倍。