介绍
对于 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 倍多
来源: https://www.php1.cn/detail/php-8da842968b.html