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 相关文章推荐
自己动手做一个SQL解释器
Oct 09 PHP
php表单转换textarea换行符的方法
Sep 10 PHP
php 保留字列表
Oct 04 PHP
关于PHP结束标签的使用细节探讨及联想
Mar 04 PHP
php实现cc攻击防御和防止快速刷新页面示例
Feb 13 PHP
php判断类是否存在函数class_exists用法分析
Nov 14 PHP
php操作xml入门之cdata区段
Jan 23 PHP
PHP滚动日志的代码实现
Jun 10 PHP
php实现多城市切换特效
Aug 09 PHP
PHP加密解密实例分析
Dec 25 PHP
PHP6新特性分析
Mar 03 PHP
php设计模式之组合模式实例详解【星际争霸游戏案例】
Mar 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
php 魔术方法使用说明
2009/10/20 PHP
php按字符无乱码截取中文的方法
2015/03/27 PHP
php跨服务器访问方法小结
2015/05/12 PHP
joomla数据库操作示例代码
2016/01/06 PHP
Yii2框架实现登录、退出及自动登录功能的方法详解
2017/10/24 PHP
js中有关IE版本检测
2012/01/04 Javascript
jquery的ajax()函数传值中文乱码解决方法介绍
2012/11/08 Javascript
JavaScript将字符串转换成字符编码列表的方法
2015/03/19 Javascript
node.js多个异步过程中判断执行是否完成的解决方案
2017/12/10 Javascript
常用的9个JavaScript图表库详解
2017/12/19 Javascript
vuejs 动态添加input框的实例讲解
2018/08/24 Javascript
vue axios post发送复杂对象问题
2019/06/04 Javascript
Javascript Worker子线程代码实例
2020/02/20 Javascript
微信小程序实现翻牌抽奖动画
2020/09/21 Javascript
JSON stringify方法原理及实例解析
2020/10/23 Javascript
[40:06]DOTA2亚洲邀请赛 4.3 突围赛 Liquid vs VGJ.T 第一场
2018/04/04 DOTA
python 解析html之BeautifulSoup
2009/07/07 Python
Python编写检测数据库SA用户的方法
2014/07/11 Python
使用Python的Flask框架来搭建第一个Web应用程序
2016/06/04 Python
Python的Flask框架及Nginx实现静态文件访问限制功能
2016/06/27 Python
python中实现延时回调普通函数示例代码
2017/09/08 Python
Python实现的购物车功能示例
2018/02/11 Python
对Python中gensim库word2vec的使用详解
2018/05/08 Python
在PyCharm环境中使用Jupyter Notebook的两种方法总结
2018/05/24 Python
使用Scrapy爬取动态数据
2018/10/21 Python
python调用自定义函数的实例操作
2019/06/26 Python
Python Scrapy框架:通用爬虫之CrawlSpider用法简单示例
2020/04/11 Python
解决paramiko执行命令超时的问题
2020/04/16 Python
2014年乡镇妇联工作总结
2014/12/02 职场文书
工作岗位职责范本
2015/02/15 职场文书
如何有效防止sql注入的方法
2021/05/25 SQL Server
Matlab如何实现矩阵复制扩充
2021/06/02 Python
pytorch 梯度NAN异常值的解决方案
2021/06/05 Python
使用nginx配置访问wgcloud的方法
2021/06/26 Servers
如何使用pdb进行Python调试
2021/06/30 Python
Nginx静态压缩和代码压缩提高访问速度详解
2022/05/30 Servers