include 或许 require 貌似都很慢
程序员文章站
2022-05-21 19:06:18
...
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毫秒
------解决方案--------------------
是快很多,不是一些
我一个页面执行时间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毫秒
------解决方案--------------------
是快很多,不是一些
相关文章
相关视频
专题推荐
-
独孤九贱-php全栈开发教程
全栈 170W+
主讲:Peter-Zhu 轻松幽默、简短易学,非常适合PHP学习入门
-
玉女心经-web前端开发教程
入门 80W+
主讲:灭绝师太 由浅入深、明快简洁,非常适合前端学习入门
-
天龙八部-实战开发教程
实战 120W+
主讲:西门大官人 思路清晰、严谨规范,适合有一定web编程基础学习
网友评论
文明上网理性发言,请遵守 新闻评论服务协议
我要评论