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 相关文章推荐
WML,Apache,和 PHP 的介绍
Oct 09 PHP
php date()日期时间函数详解
May 16 PHP
解析mysql left( right ) join使用on与where筛选的差异
Jun 18 PHP
php生成excel列序号代码实例
Dec 24 PHP
PHP中定义数组常量(array常量)的方法
Nov 17 PHP
浅析php原型模式
Nov 25 PHP
php+ajax实现文章自动保存的方法
Dec 30 PHP
php中二维数组排序问题方法详解
Aug 28 PHP
yii2 页面底部加载css和js的技巧
Apr 21 PHP
掌握PHP垃圾回收机制详解
Mar 13 PHP
PHP CURL使用详解
Mar 21 PHP
PHP实用小技巧之调用录像的方法
Dec 05 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制作的意见反馈表源码
2007/03/11 PHP
浏览器预览PHP文件时顶部出现空白影响布局分析原因及解决办法
2013/01/11 PHP
ThinkPHP CURD方法之limit方法详解
2014/06/18 PHP
php实现的click captcha点击验证码类实例
2014/09/23 PHP
PHP入门教程之使用Mysqli操作数据库的方法(连接,查询,事务回滚等)
2016/09/11 PHP
php生成毫秒时间戳的实例讲解
2017/09/22 PHP
详解PHP神奇又有用的Trait
2019/03/25 PHP
简介AngularJS中使用factory和service的方法
2015/06/17 Javascript
jQuery数据类型小结(14个)
2016/01/08 Javascript
修改Jquery Dialog 位置的实现方法
2016/08/26 Javascript
JavaScript中在光标处插入添加文本标签节点的详细方法
2017/03/22 Javascript
使用JQuery实现图片轮播效果的实例(推荐)
2017/10/24 jQuery
webpack多入口文件页面打包配置详解
2018/01/09 Javascript
讲解vue-router之命名路由和命名视图
2018/05/28 Javascript
jquery实现选项卡切换代码实例
2019/05/14 jQuery
JavaScript一元正号运算符示例代码
2019/06/30 Javascript
layui.tree组件的使用以及搜索节点功能的实现
2019/09/26 Javascript
使用layui的layer组件做弹出层的例子
2019/09/27 Javascript
javascript实现简易的计算器
2020/01/17 Javascript
Python greenlet实现原理和使用示例
2014/09/24 Python
ubuntu16.04制作vim和python3的开发环境
2018/09/23 Python
Python最小二乘法矩阵
2019/01/02 Python
Keras - GPU ID 和显存占用设定步骤
2020/06/22 Python
CSS3中Transform动画属性用法详解
2016/07/04 HTML / CSS
html5实现移动端适配完美写法
2017/11/16 HTML / CSS
精选奢华:THE LIST
2019/09/05 全球购物
什么是URL
2015/12/13 面试题
建筑自我鉴定
2013/10/19 职场文书
2014年清明节网上祭英烈寄语
2014/04/09 职场文书
赞美老师的演讲稿
2014/05/22 职场文书
党的群众路线个人对照检查材料
2014/09/23 职场文书
学校百日安全活动总结
2015/05/07 职场文书
2015年财务人员个人工作总结
2015/07/27 职场文书
社区服务活动感想
2015/08/11 职场文书
pytorch训练神经网络爆内存的解决方案
2021/05/22 Python
Java由浅入深通关抽象类与接口(下篇)
2022/04/26 Java/Android