日期:2014-05-17  浏览次数:20596 次

include 或者 require 貌似都很慢
我一个页面执行时间10ms
include 12个文件占了 5ms
换成require依旧
是否可破?

------解决方案--------------------
放到一个文件里
------解决方案--------------------
放到一个文件里去试试。
------解决方案--------------------
看看apache的日誌以及php的日誌,看看有沒有給你提供點有用的信息
------解决方案--------------------
客观地说,
你10个文件就0.5ms,那zf/yii等框架,加载几百个,那岂不是1s的样子了?
所以我建议你先找找你被include的文件里,是不是有执行某个动作。一个一个文件的去查
而不是去挑php自带函数的问题。
------解决方案--------------------
看一下服务器磁盘是不是有问题了。测一下读写速度之类的。
------解决方案--------------------
引用:
引用:客观地说,
你10个文件就0.5ms,那zf/yii等框架,加载几百个,那岂不是1s的样子了?
所以我建议你先找找你被include的文件里,是不是有执行某个动作。一个一个文件的去查
而不是去挑php自带函数的问题。

麻烦认真看贴再吐槽
上面说了(8楼),我把所有被包含的文件合成一个,并获取自身执行时间,约为0.05……

那你都确定所包含的文件都没有执行任何东西,只是纯包含文件都需要这么多时间,那只能说是php 的include效率低下了。
方法有很多,你可以一个文件一个的去掉包含,有些东西不是计算每个文件时间来确定的。
当然也要把错误全部打开。
------解决方案--------------------
你测试的是对的,加载文件是要花时间的!
不仅要从文件系统中找到文件并加载的内存,而且还要调用语法分析模块来判定代码的合法性
所以#2我让你合并到一个文件中去

当然你必须注意到
$time_start=microtime(true);
是在程序开始运行时才有效的
而 php 实际开始工作(加载php程序)的时间还要早一些

$_SERVER['REQUEST_TIME'] 请求开始时的时间戳
php 5.4 还提供了更精确的
$_SERVER['REQUEST_TIME_FLOAT']
------解决方案--------------------
包含总是慢的,不论什么语言
即使是html+css两个文件和一个html内写css,在本地测试都有区别,只不过网络传送耗时把加载耗时盖掉了

编译语言在编译时处理掉了加载的问题
但解析语言加载就不能无视这个问题,不要把编译语言那套腾挪过来
不然写一个超大文件,里面成百上千个类,一次include就够了,呵呵 

我平时写的习惯是拆分类,按需加载
早期的时候我甚至用php来写css,输出尽可能少,看着一个上百k的css文件我就累
但现在网络速度提高了,甚至几百k的整站css发送都不成问题了
------解决方案--------------------
昨天我做了一个测试,同样的代码windows下执行800毫秒,而linux下执行只需要120毫秒
------解决方案--------------------
是快很多,不是一些