php include加载文件两种方式效率比较

 更新时间:2010年08月08日 18:10:48   作者:  
这两天抽了点时间继续完善“X计划”的核心部分,核心嘛,就要加载必须的文件,尝试了两种方法,发现效率是不同的,分享一下吧~
先来说说两种方式:
1)定义一个字符串变量,里面保存要加载的文件列表。然后foreach加载。
复制代码 代码如下:

$a = '/a.class.php;/Util/b.class.php;/Util/c.class.php';
$b = '/d.php;/e.class.php;/f.class.php;/g.class.php';
// 加载基本系统文件
$kernel_require_files = explode(';', $a);//SYS_REQUIRE_LIB_FILE_LIST);
foreach($kernel_require_files as $f){
require_once(SYS_LIB_PATH.'/System'.$f);
}

// 加载基本系统文件
$kernel_require_files = explode(';', $b);//SYS_BASE_FILE_LIST);
foreach($kernel_require_files as $f){
require_once(KERNEL_PATH.$f);
}

2)把所有的要加载的文件都在一个include文件里面加载,当前页直接include这个include文件。
include.php文件内容
复制代码 代码如下:

require_once('func.php');
require_once('LangManager.class.php');
require_once('_KernelAutoLoader.class.php');
require_once('ApplicationSettingManager.class.php');

require_once('lib/System/Activator.class.php');
require_once('lib/System/Util/CXML.class.php');
require_once('lib/System/Util/CWeb.class.php');

我个人认为第二种方法效率高些,因为没有foreach这些多余的运算~凡事要论证,不能凭空想象,所以,我验证了一下。以下是用两种方法随机10次加载所消耗的时间:
foreach
0.017754077911377
0.017686128616333
0.017347097396851
0.018272161483765
0.018272161483765
0.018401145935059
0.018187046051025
0.020787000656128
0.018001079559326
0.017963171005249


include_once('include.php');
0.025792121887207
0.024733066558838
0.025041103363037
0.024915933609009
0.024657011032104
0.024134159088135
0.025845050811768
0.024954080581665
0.024757146835327
0.02684497833252

另外,又尝试了一下,直接在当前页面加载所有文件
0.022285938262939
0.024394035339355
0.023194074630737
0.023229122161865
0.024644136428833
0.023538112640381
0.024240016937256
0.025094032287598
0.023231029510498
0.02339506149292
结果令我吃惊啊!竟然第一种貌似最慢的方法,耗时最少,而直接在当前页面加载多个文件耗时也不少啊~
原因?未知啊,希望明眼的给个答案,先不管那么多"X计划"的核心加载部分就用第一种方法啦~

相关文章

  • php类自动加载器实现方法

    php类自动加载器实现方法

    这篇文章主要介绍了php类自动加载器实现方法,涉及php针对文件的读取、判断及字符串操作的相关技巧,具有一定参考借鉴价值,需要的朋友可以参考下
    2015-07-07
  • PHP使用new StdClass()创建空对象的方法分析

    PHP使用new StdClass()创建空对象的方法分析

    这篇文章主要介绍了PHP使用new StdClass()创建空对象的方法,结合具体实例形式分析了php空对象的创建与使用方法,需要的朋友可以参考下
    2017-06-06
  • PHP实现二维数组根据key进行排序的方法

    PHP实现二维数组根据key进行排序的方法

    这篇文章主要介绍了PHP实现二维数组根据key进行排序的方法,涉及php数组的遍历与排序相关操作技巧,需要的朋友可以参考下
    2016-12-12
  • PHP扩展mcrypt实现的AES加密功能示例

    PHP扩展mcrypt实现的AES加密功能示例

    这篇文章主要介绍了PHP扩展mcrypt实现的AES加密功能,结合实例形式分析了php基于mcrypt实现AES加密的相关操作技巧,需要的朋友可以参考下
    2019-01-01
  • php email邮箱正则

    php email邮箱正则

    php 正则匹配邮箱代码,分析的也比较详细,希望对这方面有问题的朋友,可以看下
    2008-10-10
  • php+mysql大量用户登录解决方案分析

    php+mysql大量用户登录解决方案分析

    这篇文章主要介绍了php+mysql大量用户登录解决方案,较为详细的分析了大量用户登录时负载过大的解决方案,具有一定的参考借鉴价值,需要的朋友可以参考下
    2014-12-12
  • PHP循环获取GET和POST值的代码

    PHP循环获取GET和POST值的代码

    用php循环获取页面中get和post的值
    2008-04-04
  • PHP编码规范-php coding standard

    PHP编码规范-php coding standard

    标准化问题在某些方面上让每个人头痛,让人人都觉得大家处于同样的境地。这有助于让这些建议在许多的项目中不断演进,许多公司花费了许多星期逐子字逐句的进行争论。
    2007-03-03
  • 10个可以简化php开发过程的MySQL工具

    10个可以简化php开发过程的MySQL工具

    使用各种精心设计的工具来管理MySQL数据库要比单纯使用传统的方法轻松得的多。开发人员应该不断寻找那些能够缩短开发时间的工具。这也是我们本文整理这10个能够简化开发过程的MySQL工具的原因。
    2010-04-04
  • php调用google接口生成二维码示例

    php调用google接口生成二维码示例

    php生成二维码的方法或许有很多,本文主要以调用google接口来实现二维码的生成,需要的朋友可以参考下
    2014-04-04

最新评论