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


     
     
     介绍
     
     对于php性能问题,议论最多的就是__autoload()方法,很多人提到这个方法非常影响性能。还有人说opcode也能影响到__autoload()方法,所以针对这两点我做了个测试。
     
    最终发现__autoload方法在性能方面的影响不是很大的。有的网友说不用__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倍多。
     
     
  • 相关阅读:
    sharepoint2013搜索
    jquery文档
    jquery 修改样式
    文本区使用
    jquery重置
    jquery 获取某a标签的href地址 实现页面加载时跳转
    js学习
    《当裸辞的程序猿遇上最冷季九》——累觉不爱,暂时停更
    《当裸辞的程序猿遇上最冷季八》——第一次约女孩吃饭
    《当裸辞的程序猿遇上最冷季七》—国庆回家
  • 原文地址:https://www.cnblogs.com/baochuan/p/2423018.html
Copyright © 2020-2023  润新知