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动态创建Flash动画
Oct 09 PHP
PHP获取163、gmail、126等邮箱联系人地址【已测试2009.10.10】
Oct 11 PHP
php学习笔记 php中面向对象三大特性之一[封装性]的应用
Jun 13 PHP
php 生成短网址原理及代码
Jan 23 PHP
Thinkphp中volist标签mod控制一定记录的换行BUG解决方法
Nov 04 PHP
THINKPHP在添加数据的时候获取主键id的值方法
Apr 03 PHP
PHP4和PHP5版本下解析XML文档的操作方法实例分析
May 20 PHP
Laravel中Facade的加载过程与原理详解
Sep 22 PHP
详解PHP中mb_strpos的使用
Feb 04 PHP
CodeIgniter框架实现的整合Smarty引擎DEMO示例
Mar 28 PHP
php中isset与empty函数的困惑与用法分析
Jul 05 PHP
PHP设计模式入门之状态模式原理与实现方法分析
Apr 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
ajax php 实现写入数据库
2009/09/02 PHP
php连接odbc数据源并保存与查询数据的方法
2014/12/24 PHP
php计算多维数组中所有值总和的方法
2015/06/24 PHP
php对文件夹进行相关操作(遍历、计算大小)
2015/11/04 PHP
ThinkPHP框架实现FTP图片上传功能示例
2019/04/08 PHP
php设计模式之观察者模式实例详解【星际争霸游戏案例】
2020/03/30 PHP
greybox——不开新窗口看新的网页
2007/02/20 Javascript
利用js对象弹出一个层
2008/03/26 Javascript
JQuery Tips(3) 关于$()包装集内元素的改变
2009/12/14 Javascript
js或css实现滚动广告的几种方案
2010/01/28 Javascript
实例详解ECMAScript5中新增的Array方法
2016/04/05 Javascript
Bootstrap每天必学之警告框插件
2016/04/26 Javascript
AngularJS基础 ng-csp 指令详解
2016/08/01 Javascript
jQuery扇形定时器插件pietimer使用方法详解
2017/07/18 jQuery
js实现敏感词过滤算法及实现逻辑
2018/07/24 Javascript
JavaScript中创建原子的方法总结
2018/08/26 Javascript
详解vue-cli3多环境打包配置
2019/03/28 Javascript
JavaScript 处理树数据结构的方法示例
2019/06/16 Javascript
在layui中layer弹出层点击事件无效的解决方法
2019/09/05 Javascript
用vue设计一个日历表
2020/12/03 Vue.js
[00:35]DOTA2上海特级锦标赛 MVP.Phx战队宣传片
2016/03/04 DOTA
Windows上使用virtualenv搭建Python+Flask开发环境
2016/06/07 Python
Python制作Windows系统服务
2017/03/25 Python
MAC中PyCharm设置python3解释器
2017/12/15 Python
python3.6 +tkinter GUI编程 实现界面化的文本处理工具(推荐)
2017/12/20 Python
python socket网络编程之粘包问题详解
2018/04/28 Python
Python实现定时执行任务的三种方式简单示例
2019/03/30 Python
Python使用matplotlib绘制Logistic曲线操作示例
2019/11/28 Python
基于Numba提高python运行效率过程解析
2020/03/02 Python
社区版pycharm创建django项目的方法(pycharm的newproject左侧没有项目选项)
2020/09/23 Python
使用CSS3制作倾斜导航条和毛玻璃效果
2017/09/12 HTML / CSS
美国顶级品牌男士大码服装店:DXL
2017/08/30 全球购物
领导干部作风建设剖析材料
2014/10/11 职场文书
用Python写一个简易版弹球游戏
2021/04/13 Python
Java后台生成图片的完整步骤
2021/08/04 Java/Android
Java8 CompletableFuture 异步回调
2022/04/28 Java/Android