include或许require貌似都很慢
时间:2021-07-01 10:21:17
帮助过:3人阅读
include 或者 require 貌似都很慢
我一个页面执行时间10ms
include 12个文件占了 5ms
换成require依旧
是否可破?
------解决方案--------------------放到一个文件里
------解决方案--------------------放到一个文件里去试试。
------解决方案--------------------看看apache的日誌以及php的日誌,看看有沒有給你提供點有用的信息
------解决方案--------------------客观地说,
你10个文件就0.5ms,那zf/yii等框架,加载几百个,那岂不是1s的样子了?
所以我建议你先找找你被include的文件里,是不是有执行某个动作。一个一个文件的去查
而不是去挑php自带函数的问题。
------解决方案--------------------看一下服务器磁盘是不是有问题了。测一下读写速度之类的。
------解决方案--------------------那你都确定所包含的文件都没有执行任何东西,只是纯包含文件都需要这么多时间,那只能说是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毫秒
------解决方案--------------------是快很多,不是一些