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 相关文章推荐
php 中文字符入库或显示乱码问题的解决方法
Apr 12 PHP
php file_exists 检查文件或目录是否存在的函数
May 10 PHP
Smarty变量调节器失效的解决办法
Aug 20 PHP
php实现的返回数据格式化类实例
Sep 22 PHP
smarty简单入门实例
Nov 28 PHP
curl和libcurl的区别简介
Jul 01 PHP
PHP中in_array函数使用的问题与解决办法
Sep 11 PHP
php 5.4 全新的代码复用Trait详解
Jan 05 PHP
php mysql PDO 查询操作的实例详解
Sep 23 PHP
在Laravel5中正确设置文件权限的方法
May 22 PHP
使用composer命令加载vendor中的第三方类库 的方法
Jul 09 PHP
laravel框架创建授权策略实例分析
Nov 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
如何批量替换相对地址为绝对地址(利用bat批处理实现)
2013/05/27 PHP
微信公众号点击菜单即可打开并登录微站的实现方法
2014/11/14 PHP
php图片上传类 附调用方法
2016/05/15 PHP
php表单处理操作
2017/11/16 PHP
PHP如何防止XSS攻击与XSS攻击原理的讲解
2019/03/22 PHP
改版了网上的一个js操作userdata
2007/04/27 Javascript
JS子父窗口互相操作取值赋值的方法介绍
2013/05/11 Javascript
javascript 判断字符串是否包含某字符串及indexOf使用示例
2013/10/18 Javascript
讨论html与javascript在浏览器中的加载顺序问题
2013/11/27 Javascript
JQuery实现绚丽的横向下拉菜单
2013/12/19 Javascript
JS鼠标拖拽实例分析
2015/11/23 Javascript
全面解析Bootstrap中tooltip、popover的使用方法
2016/06/13 Javascript
jQuery Validate设置onkeyup验证的实例代码
2016/12/09 Javascript
JavaScript定时器制作弹窗小广告
2017/02/05 Javascript
canvas 实现中国象棋
2017/02/17 Javascript
jQuery实现点击关注和取消功能
2017/07/03 jQuery
layui之table checkbox初始化时选中对应选项的方法
2019/09/02 Javascript
微信小程序实现注册登录功能(表单校验、错误提示)
2019/12/10 Javascript
[01:26]神话结束了,却也刚刚开始——DOTA2新英雄玛尔斯驾临战场
2019/03/10 DOTA
python 爬取学信网登录页面的例子
2019/08/13 Python
python3常用的数据清洗方法(小结)
2019/10/31 Python
Python按照list dict key进行排序过程解析
2020/04/04 Python
Pycharm中安装Pygal并使用Pygal模拟掷骰子(推荐)
2020/04/08 Python
浅析Python requests 模块
2020/10/09 Python
CSS3利用text-shadow属性实现多种效果的文字样式展现方法
2016/08/25 HTML / CSS
CSS实现雨滴动画效果的实例代码
2019/10/08 HTML / CSS
CK美国官网:Calvin Klein
2016/08/26 全球购物
KEETSA环保床垫:更好的睡眠,更好的生活!
2016/11/24 全球购物
金鑫耀Java笔试题
2014/09/06 面试题
个人生活学习自我评价范文
2013/11/26 职场文书
中学生英语演讲稿
2014/04/26 职场文书
品质口号大全
2014/06/17 职场文书
反邪教标语
2014/06/23 职场文书
失恋33天观后感
2015/06/11 职场文书
spring cloud eureka 服务启动失败的原因分析及解决方法
2022/03/17 Java/Android
CSS 左边固定宽右边自适应的6种方法
2022/05/15 HTML / CSS