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 array_merge下进行数组合并的代码
Jul 22 PHP
php实现天干地支计算器示例
Mar 14 PHP
PHP中使用Imagick操作PSD文件实例
Jan 26 PHP
php通过修改header强制图片下载的方法
Mar 24 PHP
Symfony生成二维码的方法
Feb 04 PHP
ThinkPHP模板循环输出Volist标签用法实例详解
Mar 23 PHP
PHP格式化MYSQL返回float类型的方法
Mar 30 PHP
php使用curl通过代理获取数据的实现方法
May 16 PHP
PHP自定义函数获取URL中一级域名的方法
Aug 23 PHP
php微信公众号js-sdk开发应用
Nov 28 PHP
php的无刷新操作实现方法分析
Feb 28 PHP
Thinkphp 框架扩展之驱动扩展实例分析
Apr 27 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
JAVA/JSP学习系列之二
2006/10/09 PHP
php下实现在指定目录搜索指定类型文件的函数
2008/10/03 PHP
解析Linux下Varnish缓存的配置优化
2013/06/20 PHP
详解php用curl调用接口方法,get和post两种方式
2017/01/13 PHP
PHP的RSA加密解密方法以及开发接口使用
2018/02/11 PHP
两种方法实现文本框输入内容提示消失
2013/03/17 Javascript
JavaScript对内存分配及管理机制详细解析
2013/11/11 Javascript
javascript unicode与GBK2312(中文)编码转换方法
2013/11/14 Javascript
jquery根据属性和index来查找属性值并操作
2014/07/25 Javascript
多个$(document).ready()的执行顺序实例分析
2014/07/26 Javascript
jQuery多级弹出菜单插件ZoneMenu
2014/12/18 Javascript
JavaScript多线程详解
2015/08/12 Javascript
JS数组合并push与concat区别分析
2015/12/17 Javascript
实例讲解JS中setTimeout()的用法
2016/01/28 Javascript
JavaScript计时器用法分析【setTimeout和clearTimeout】
2017/01/18 Javascript
用Axios Element实现全局的请求loading的方法
2018/03/15 Javascript
JS数组转字符串实现方法解析
2020/09/04 Javascript
使用Python进行稳定可靠的文件操作详解
2013/12/31 Python
在Python中使用列表生成式的教程
2015/04/27 Python
详解Python中expandtabs()方法的使用
2015/05/18 Python
Python实现Linux命令xxd -i功能
2016/03/06 Python
Python使用Scrapy保存控制台信息到文本解析
2017/12/27 Python
python微信跳一跳系列之色块轮廓定位棋盘
2018/02/26 Python
python3第三方爬虫库BeautifulSoup4安装教程
2018/06/19 Python
Python实现将数据写入netCDF4中的方法示例
2018/08/30 Python
Python文件监听工具pyinotify与watchdog实例
2018/10/15 Python
python爬虫之验证码篇3-滑动验证码识别技术
2019/04/11 Python
用python生成(动态彩色)二维码的方法(使用myqr库实现)
2019/06/24 Python
django 单表操作实例详解
2019/07/30 Python
python读取word 中指定位置的表格及表格数据
2019/10/23 Python
python 第三方库paramiko的常用方式
2021/02/20 Python
荷兰鞋子在线:Nelson Schoenen
2017/12/25 全球购物
法学专业个人求职信
2013/09/26 职场文书
县政府办公室领导班子对照检查材料思想汇报
2014/09/28 职场文书
小学一年级数学教学反思
2016/02/16 职场文书
分析Java中Map的遍历性能问题
2021/06/26 Java/Android