Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/php/248.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Php 优化多个require_once调用_Php - Fatal编程技术网

Php 优化多个require_once调用

Php 优化多个require_once调用,php,Php,我有一个网站,在一个“目录”页面上有大约150个require_once调用。每个页面调用都需要在此目录上加载一次,以确保加载了所有必需的文件。在这个目录上调用require_一次大约需要5到15秒,我没有简单的方法来减少每个页面需要的类的数量 那么:有没有办法加快这一进程?我假设它需要执行一次,但我也假设它将被缓存用于会话,但情况似乎并非如此,因为每次页面加载的5-15秒开销都是相同的 希望这是有道理的 谢谢 require_once背后的理念是确保: 您没有多次拥有该文件 加快加载速度,使文

我有一个网站,在一个“目录”页面上有大约150个require_once调用。每个页面调用都需要在此目录上加载一次,以确保加载了所有必需的文件。在这个目录上调用require_一次大约需要5到15秒,我没有简单的方法来减少每个页面需要的类的数量

那么:有没有办法加快这一进程?我假设它需要执行一次,但我也假设它将被缓存用于会话,但情况似乎并非如此,因为每次页面加载的5-15秒开销都是相同的

希望这是有道理的


谢谢

require_once背后的理念是确保:

  • 您没有多次拥有该文件
  • 加快加载速度,使文件不再包含
  • PHP将已加载的文件存储在内存中。如果您对一个文件调用require_一次,然后再次调用它,PHP甚至不会查找该文件,它会看到该文件已经加载,并且不会费心读取该文件

    这让我觉得require_once不是页面加载问题的罪魁祸首


    不过,我可能误解了这个问题。如果你的意思是每一次都是不同的,那就另当别论了。如果它们用于加载类,请查看PHP自动加载函数。这将只加载所调用的类。

    我的第一个猜测是,您在一个所需脚本中定义了一些逻辑。如果它们都只是类定义文件,没有理由要求它们花费5-15秒


    你把每门课都写在每一页上有什么原因吗?如果可能的话,您应该查看150个包含的库?!在任何情况下,您是否使用fastCGI或php eaccelerator?这应该会有很大的帮助。我不确定在哪里,因为你没有给出很多细节,但我很确定这其中有一些逻辑缺陷。一个目录可能包含数百个从数据库中提取的项目,我只是不明白为什么每个项目都包含一个文件……A)确保使用操作码缓存(如APC)。b) 使用xdebug(或其他工具)并评测应用程序。您可以很快找到瓶颈。我试图避免探查器和其他服务器端修改,因为我对服务器所能做的更改范围非常有限。我现在添加了自动加载,这在一段时间内大大加快了加载速度,但之后它似乎会从正在使用的缓存中删除加载的文件,并且再次减慢速度。现在看来php eaccelerator正是我想要的,所以我将对此进行研究。谢谢