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 相关文章推荐
PHP5新特性: 更加面向对象化的PHP
Nov 18 PHP
PHP中的日期及时间
Nov 23 PHP
用PHP的ob_start();控制您的浏览器cache!
Feb 14 PHP
php学习笔记之面向对象
Nov 08 PHP
PHP获取数组中重复最多的元素的实现方法
Nov 11 PHP
PHP中round()函数对浮点数进行四舍五入的方法
Nov 19 PHP
简单谈谈php中的unicode和utf8编码
Jun 10 PHP
PHP使用curl模拟post上传及接收文件的方法
Mar 04 PHP
PHP中Notice错误常见解决方法
Apr 28 PHP
PHP编程文件处理类SplFileObject和SplFileInfo用法实例分析
Jul 22 PHP
PHP unlink与rmdir删除目录及目录下所有文件实例代码
Feb 07 PHP
PHP使用OB缓存实现静态化功能示例
Mar 23 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
Syphon 秘笈
2021/03/03 冲泡冲煮
第1次亲密接触PHP5(2)
2006/10/09 PHP
codeigniter自带数据库类使用方法说明
2014/03/25 PHP
thinkphp3.0输出重复两次的解决方法
2014/12/19 PHP
php简单判断两个字符串是否相等的方法
2015/07/13 PHP
PHP切割整数工具类似微信红包金额分配的思路详解
2019/09/18 PHP
用javascript实现页面打印的三种方法
2007/03/05 Javascript
使用Mootools动态添加Css样式表代码,兼容各浏览器
2011/12/12 Javascript
JS实现仿微博可关闭弹出层效果
2015/09/21 Javascript
详解JavaScript中常用的函数类型
2015/11/18 Javascript
基于JavaScript将表单序列化类型的数据转化成对象的处理(允许对象中包含对象)
2015/12/28 Javascript
基于jQuery实现select下拉选择可输入附源码下载
2016/02/03 Javascript
5个最顶级jQuery图表类库插件【jquery插件库】
2016/05/05 Javascript
基于JavaScript实现单选框下拉菜单添加文件效果
2016/06/26 Javascript
JS常用函数和常用技巧小结
2016/10/15 Javascript
JavaScript实现拖拽元素对齐到网格(每次移动固定距离)
2016/11/30 Javascript
AngularJS2中一种button切换效果的实现方法(二)
2017/03/27 Javascript
详解如何解决vue开发请求数据跨域的问题(基于浏览器的配置解决)
2018/11/12 Javascript
axios携带cookie配置详解(axios+koa)
2018/12/28 Javascript
layui 实现自动选择radio单选框(checked)的方法
2019/09/03 Javascript
解决vue字符串换行问题(绝对管用)
2020/08/06 Javascript
[06:59]DOTA2-DPC中国联赛3月7日Recap集锦
2021/03/11 DOTA
Python selenium模拟手动操作实现无人值守刷积分功能
2020/05/13 Python
Python使用Opencv实现边缘检测以及轮廓检测的实现
2020/12/31 Python
解决import tensorflow导致jupyter内核死亡的问题
2021/02/06 Python
HTML5 Canvas实现放大镜效果示例
2020/03/25 HTML / CSS
中国排名第一的外贸销售网站:LightInTheBox.com(兰亭集势)
2016/10/28 全球购物
NYX Professional Makeup英国官网:美国平价专业彩妆品牌
2019/11/13 全球购物
Java面试中常遇到的问题,也是需要注意的几点
2013/08/30 面试题
人力资源经理自我评价
2014/01/04 职场文书
小学生元旦广播稿
2014/02/21 职场文书
酒店前台辞职书
2015/02/26 职场文书
教师求职自荐信范文
2015/03/04 职场文书
2016中学教师读书心得体会
2016/01/13 职场文书
vite+vue3.0+ts+element-plus快速搭建项目的实现
2021/06/24 Vue.js
SpringCloud Function SpEL注入漏洞分析及环境搭建
2022/04/08 Java/Android