Home  >  Article  >  Backend Development  >  include 或许 require 貌似都很慢

include 或许 require 貌似都很慢

WBOY
WBOYOriginal
2016-06-13 11:10:591607browse

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毫秒
------解决方案--------------------
是快很多,不是一些
Statement:
The content of this article is voluntarily contributed by netizens, and the copyright belongs to the original author. This site does not assume corresponding legal responsibility. If you find any content suspected of plagiarism or infringement, please contact admin@php.cn