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 相关文章推荐
教你IIS6的PHP最佳配置方法
Sep 05 PHP
文章推荐系统(三)
Oct 09 PHP
php桌面中心(三) 修改数据库
Mar 11 PHP
php数组函数序列之krsort()- 对数组的元素键名进行降序排序,保持索引关系
Nov 02 PHP
PHP-redis中文文档介绍
Feb 07 PHP
浅析memcache启动以及telnet命令详解
Jun 28 PHP
根据中文裁减字符串函数的php代码
Dec 03 PHP
Yii框架获取当前controlle和action对应id的方法
Dec 03 PHP
CodeIgniter中使用Smarty3基本配置
Jun 29 PHP
PHP获取二叉树镜像的方法
Jan 17 PHP
php实现QQ小程序发送模板消息功能
Sep 18 PHP
laravel框架模型和数据库基础操作实例详解
Jan 25 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/16 PHP
smarty模板嵌套之include与fetch性能测试
2010/12/05 PHP
如何使用Linux的Crontab定时执行PHP脚本的方法
2011/12/19 PHP
Laravel 5框架学习之向视图传送数据(进阶篇)
2015/04/08 PHP
PHP常用技巧汇总
2016/03/04 PHP
Laravel实现短信注册的示例代码
2018/05/29 PHP
js removeChild 障眼法 可能出现的错误
2009/10/06 Javascript
JS操作CSS随机改变网页背景实现思路
2014/03/10 Javascript
jQuery密码强度验证控件使用详解
2017/01/05 Javascript
让网站自动生成章节目录索引的多个js代码
2018/01/07 Javascript
JS实现水平移动与垂直移动动画
2019/12/19 Javascript
OpenLayers3实现鼠标移动显示坐标
2020/09/25 Javascript
[02:39]DOTA2英雄基础教程 天怒法师
2013/11/29 DOTA
python算法学习之基数排序实例
2013/12/18 Python
Python 基础教程之闭包的使用方法
2017/09/29 Python
浅谈Django REST Framework限速
2017/12/12 Python
Python3 实现随机生成一组不重复数并按行写入文件
2018/04/09 Python
Python 查找list中的某个元素的所有的下标方法
2018/06/27 Python
浅谈Python中的bs4基础
2018/10/21 Python
Python中垃圾回收和del语句详解
2018/11/15 Python
pycharm显示远程图片的实现
2019/11/04 Python
解决H5的a标签的download属性下载service上的文件出现跨域问题
2019/07/16 HTML / CSS
.NET remoting的两种通道是什么
2016/05/31 面试题
西安启天科技有限公司网络工程师面试题笔试题
2016/06/12 面试题
商场活动策划方案
2014/01/24 职场文书
标准化管理实施方案
2014/02/25 职场文书
金融管理专业毕业生求职信
2014/03/12 职场文书
投资意向书
2014/07/30 职场文书
春游踏青活动方案
2014/08/14 职场文书
庆祝新中国成立65周年“向国旗敬礼”网上签名寄语
2014/09/27 职场文书
领导干部查摆“四风”问题自我剖析材料思想汇报
2014/10/05 职场文书
教师个人事迹材料
2014/12/17 职场文书
用golang如何替换某个文件中的字符串
2021/04/25 Golang
Python 阶乘详解
2021/10/05 Python
Oracle数据库中通用的函数实例详解
2022/03/25 Oracle
Python万能模板案例之matplotlib绘制直方图的基本配置
2022/04/13 Python