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水印技术
Feb 14 PHP
PHP 生成的XML以FLASH获取为乱码终极解决
Aug 07 PHP
php获取当前时间的毫秒数的方法
Jan 26 PHP
WordPress中登陆后关闭登陆页面及设置用户不可见栏目
Dec 31 PHP
PHP读取大文件末尾N行的高效方法推荐
Jun 03 PHP
老生常谈PHP面向对象之标识映射
Jun 21 PHP
php生成毫秒时间戳的实例讲解
Sep 22 PHP
详细解读php的命名空间(二)
Feb 21 PHP
PHP定义字符串的四种方式详解
Feb 06 PHP
PHP+jQuery实现双击修改table表格功能示例
Feb 21 PHP
php7下的filesize函数
Sep 30 PHP
如何在Laravel5.8中正确地应用Repository设计模式
Nov 26 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循环语句笔记(foreach,list)
2011/11/29 PHP
php安装ssh2扩展的方法【Linux平台】
2016/07/20 PHP
php在windows环境下获得cpu内存实时使用率(推荐)
2018/02/08 PHP
PHP解决高并发的优化方案实例
2020/12/10 PHP
js树形控件脚本代码
2008/07/24 Javascript
无阻塞加载脚本分析[全]
2011/01/20 Javascript
jQuery事件用法实例汇总
2014/08/29 Javascript
jQuery实现统计复选框选中数量
2014/11/24 Javascript
javascript使用Promise对象实现异步编程
2016/03/01 Javascript
妙用Bootstrap的 popover插件实现校验表单提示功能
2016/08/29 Javascript
JSON中key动态设置及JSON.parse和JSON.stringify()的区别
2016/12/29 Javascript
vue中v-model动态生成的实例详解
2017/10/27 Javascript
使用sessionStorage解决vuex在页面刷新后数据被清除的问题
2018/04/13 Javascript
微信小程序实现左滑修改、删除功能
2020/10/19 Javascript
OpenLayers加载缩放控件使用方法详解
2020/09/25 Javascript
[03:09]2014DOTA2国际邀请赛 赛场上的美丽风景线 中国Coser也爱DOTA2
2014/07/20 DOTA
[01:05:32]DOTA2上海特级锦标赛主赛事日 - 3 败者组第三轮#1COL VS Alliance第一局
2016/03/04 DOTA
Python Paramiko模块的安装与使用详解
2016/11/18 Python
Python插件virtualenv搭建虚拟环境
2017/11/20 Python
python的unittest测试类代码实例
2017/12/07 Python
Python实现定时精度可调节的定时器
2018/04/15 Python
python判断一个数是否能被另一个整数整除的实例
2018/12/12 Python
python实现数据清洗(缺失值与异常值处理)
2019/12/02 Python
html5 学习简单的拾色器
2010/09/03 HTML / CSS
html5 canvas绘制矩形和圆形的实例代码
2016/06/16 HTML / CSS
应届生求职信写作技巧
2013/10/24 职场文书
财务经理的岗位职责
2013/12/17 职场文书
小学教师师德师风演讲稿
2014/08/22 职场文书
2014年辅导员工作总结
2014/11/18 职场文书
2014年安置帮教工作总结
2014/12/11 职场文书
单位实习鉴定评语
2015/01/04 职场文书
会议欢迎词
2015/01/23 职场文书
爱护公物主题班会
2015/08/17 职场文书
公安忠诚教育心得体会
2016/01/23 职场文书
openEuler 搭建java开发环境的详细过程
2022/06/10 Servers
解决ubuntu安装软件时,status-code=409报错的问题
2022/12/24 Servers