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

 更新时间:2012年03月30日 00:14:30   作者:  
对于php性能问题,议论最多的就是__autoload()方法,很多人提到这个方法非常影响性能。还有人说opcode也能影响到__autoload()方法,所以针对这两点我做了个测试
介绍

对于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 分库分表hash算法

    php 分库分表hash算法

    分享一个分库分表hash算法,需要的朋友可以参考下。
    2009-11-11
  • PHP修改session_id示例代码

    PHP修改session_id示例代码

    以下是PHP修改session_id的详细代码,希望对大家有所帮助
    2014-01-01
  • Fastadmin框架自定义搜索操作流程

    Fastadmin框架自定义搜索操作流程

    这篇文章主要介绍了Fastadmin框架自定义搜索操作流程,包括html标签、js调整、PHP修改,需要的朋友可以参考下
    2023-08-08
  • php获得文件大小和文件创建时间的方法

    php获得文件大小和文件创建时间的方法

    这篇文章主要介绍了php获得文件大小和文件创建时间的方法,涉及php中filesize及fileatime函数的使用技巧,具有一定参考借鉴价值,需要的朋友可以参考下
    2015-03-03
  • PHP实现对文件锁进行加锁、解锁操作的方法

    PHP实现对文件锁进行加锁、解锁操作的方法

    这篇文章主要介绍了PHP实现对文件锁进行加锁、解锁操作的方法,结合实例形式分析了PHP针对文件进行加锁、解锁操作的功能、实现方法与相关注意事项,需要的朋友可以参考下
    2017-07-07
  • php使用sql数据库 获取字段问题介绍

    php使用sql数据库 获取字段问题介绍

    由于sql server中,ntext和nvarchar字段是用unicode编码存储内容的,因此php通过mssql扩展读取带ntext和nvarchar类型字段的时候会抱错
    2013-08-08
  • PHP实现的生成唯一RequestID类完整示例

    PHP实现的生成唯一RequestID类完整示例

    这篇文章主要介绍了PHP实现的生成唯一RequestID类,结合完整实例形式分析了php唯一标识符生成、session操作等相关实现与使用技巧,需要的朋友可以参考下
    2018-07-07
  • php中的异常和错误浅析

    php中的异常和错误浅析

    PHP错误是属于php程序自身的问题,一般是由非法的语法,环境问题导致的,使得编译器无法通过检查甚至无法运行的情况。PHP异常一般是业务逻辑上出现的不合预期、与正常流程不同的状况,不是语法错误。本文介绍了php中异常和错误的相关资料,需要的朋友可以参考下。
    2017-05-05
  • PHP面向对象程序设计类的定义与用法简单示例

    PHP面向对象程序设计类的定义与用法简单示例

    这篇文章主要介绍了PHP面向对象程序设计类的定义与用法,结合实例形式分析了php类的定义、实例化、__set()及__get()具体使用技巧,需要的朋友可以参考下
    2016-12-12
  • PHP中include和require的区别实例分析

    PHP中include和require的区别实例分析

    网上太多关于PHP中include与require区别。然而事实真的如此吗,今天我们就通过一个具体的实例来简单分析验证下
    2017-05-05

最新评论