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


Posted in PHP onAugust 08, 2010

先来说说两种方式:
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 相关文章推荐
一个简单的MySQL数据浏览器
Oct 09 PHP
用windows下编译过的eAccelerator for PHP 5.1.6实现php加速的使用方法
Sep 30 PHP
Godaddy空间Zend Optimizer升级方法
May 10 PHP
PHP输入流php://input介绍
Sep 18 PHP
php中3种方法删除字符串中间的空格
Mar 10 PHP
PHP通过插入mysql数据来实现多机互锁实例
Nov 05 PHP
php中实现获取随机数组列表的自定义函数
Apr 02 PHP
PHP静态延迟绑定和普通静态效率的对比
Oct 20 PHP
PHP unlink与rmdir删除目录及目录下所有文件实例代码
Feb 07 PHP
Ajax+PHP实现的分类列表框功能示例
Feb 11 PHP
php版本CKEditor 4和CKFinder安装及配置方法图文教程
Jun 05 PHP
PHP Primary script unknown 解决方法总结
Aug 22 PHP
将一维或多维的数组连接成一个字符串的php代码
Aug 08 #PHP
php简单提示框alert封装函数
Aug 08 #PHP
php递归实现无限分类生成下拉列表的函数
Aug 08 #PHP
php用数组返回无限分类的列表数据的代码
Aug 08 #PHP
php自定义函数之递归删除文件及目录
Aug 08 #PHP
php自动获取目录下的模板的代码
Aug 08 #PHP
php下删除一篇文章生成的多个静态页面
Aug 08 #PHP
You might like
php 字符串替换的方法
2012/01/10 PHP
PHP多线程编程之管道通信实例分析
2015/03/07 PHP
PHP内核探索:哈希表碰撞攻击原理
2015/07/31 PHP
PHP将MySQL的查询结果转换为数组并用where拼接的示例
2016/05/13 PHP
经典海量jQuery插件 大家可以收藏一下
2010/02/07 Javascript
再探JavaScript作用域
2014/09/24 Javascript
js与jquery实时监听输入框值的oninput与onpropertychange方法
2015/02/05 Javascript
JavaScript控制table某列不显示的方法
2015/03/16 Javascript
JS检测页面中哪个HTML标签触发点击事件的方法
2016/06/17 Javascript
jQuery EasyUI tree 使用拖拽时遇到的错误小结
2016/10/10 Javascript
ES6通过babel转码使用webpack使用import关键字
2016/12/13 Javascript
jQuery+ajax读取json数据并按照价格排序示例
2018/03/28 jQuery
layer关闭当前窗口页面以及确认取消按钮的方法
2019/09/09 Javascript
javascript实现前端成语点击验证优化
2020/06/24 Javascript
[38:23]2014 DOTA2国际邀请赛中国区预选赛 5 23 CIS VS LGD第一场
2014/05/24 DOTA
python爬虫入门教程--利用requests构建知乎API(三)
2017/05/25 Python
Python中数组,列表:冒号的灵活用法介绍(np数组,列表倒序)
2018/04/18 Python
django 使用 request 获取浏览器发送的参数示例代码
2018/06/11 Python
彻底理解Python中的yield关键字
2019/04/01 Python
对python3 Serial 串口助手的接收读取数据方法详解
2019/06/12 Python
python3+opencv生成不规则黑白mask实例
2020/02/19 Python
Django操作session 的方法
2020/03/09 Python
PyCharm配置anaconda环境的步骤详解
2020/07/31 Python
Python Selenium实现无可视化界面过程解析
2020/08/25 Python
python 获取域名到期时间的方法步骤
2021/02/10 Python
HTML5 video 视频标签使用介绍
2014/02/03 HTML / CSS
尽职尽责村干部自我鉴定
2014/01/23 职场文书
总经理司机职责
2014/02/02 职场文书
小学生新年寄语
2014/04/03 职场文书
青安岗事迹材料
2014/05/14 职场文书
车辆年审委托书范本
2014/09/18 职场文书
2015年教师党员自我评价材料
2015/03/04 职场文书
2015年个人招商工作总结
2015/04/25 职场文书
2016年中学植树节活动总结
2016/03/16 职场文书
周一早安温馨问候祝福语!
2019/07/15 职场文书
导游词之麻姑仙境
2019/11/18 职场文书