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 相关文章推荐
修改Zend引擎实现PHP源码加密的原理及实践
Apr 14 PHP
PHP删除非空目录的函数代码小结
Feb 28 PHP
在PHP模板引擎smarty生成随机数的方法和math函数详解
Apr 24 PHP
用 Composer构建自己的 PHP 框架之基础准备
Oct 30 PHP
浅析php工厂模式
Nov 25 PHP
php不使用copy()函数复制文件的方法
Mar 13 PHP
php通过array_merge()函数合并两个数组的方法
Mar 18 PHP
laravel5创建service provider和facade的方法详解
Jul 26 PHP
php把时间戳转换成多少时间之前函数的实例
Nov 16 PHP
magento后台无法登录解决办法的两种方法
Dec 09 PHP
Laravel中使用Queue的最基本操作教程
Dec 27 PHP
php 解析非标准json、非规范json
Apr 01 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代码
2006/12/06 PHP
php 友好URL的实现(吐血推荐)
2008/10/04 PHP
Zend Framework页面缓存实例
2014/06/25 PHP
PHP类的反射用法实例
2014/11/03 PHP
如何在旧的PHP系统中使用PHP 5.3之后的库
2015/12/02 PHP
浅谈PHP中的错误处理和异常处理
2017/02/04 PHP
PHP中使用jQuery+Ajax实现分页查询多功能操作(示例讲解)
2017/09/17 PHP
PHP yield关键字功能与用法分析
2019/01/03 PHP
Laravel5.1框架注册中间件的三种场景详解
2019/07/09 PHP
javascript强制点击广告的方法
2015/02/06 Javascript
js查看一个函数的执行时间实例代码
2015/09/12 Javascript
Bootstrap导航栏各元素操作方法(表单、按钮、文本)
2015/12/28 Javascript
DIV随滚动条滚动而滚动的实现代码【推荐】
2016/04/12 Javascript
javascript常见数字进制转换实例分析
2016/04/21 Javascript
易被忽视的js事件问题总结
2016/05/14 Javascript
JS实现title标题栏文字不间断滚动显示效果
2016/09/07 Javascript
js字符串操作总结(必看篇)
2016/11/22 Javascript
js实现的简练高效拖拽功能示例
2016/12/21 Javascript
详解React开发中使用require.ensure()按需加载ES6组件
2017/05/12 Javascript
VUE引入第三方js包及调用方法讲解
2019/03/01 Javascript
layui--js控制switch的切换方法
2019/09/03 Javascript
layui上传图片到服务器的非项目目录下的方法
2019/09/26 Javascript
原生js实现瀑布流效果
2020/03/09 Javascript
详解微信小程序(Taro)手动埋点和自动埋点的实现
2021/03/02 Javascript
Python 执行字符串表达式函数(eval exec execfile)
2014/08/11 Python
Python使用matplotlib绘制动画的方法
2015/05/20 Python
Python读取txt文件数据的方法(用于接口自动化参数化数据)
2018/06/27 Python
解决Django一个表单对应多个按钮的问题
2019/07/18 Python
美国最大和最受信任的二手轮胎商店:Bestusedtires.com
2020/06/02 全球购物
幼儿园家长会邀请函
2014/01/15 职场文书
工会主席事迹材料
2014/06/03 职场文书
小学“向国旗敬礼”网上签名寄语活动总结
2014/09/27 职场文书
2014年政风行风评议工作总结
2014/10/21 职场文书
夫妻双方自愿离婚协议书怎么写
2014/12/01 职场文书
让世界充满爱观后感
2015/06/10 职场文书
2015年度对口支援工作总结
2015/07/22 职场文书