优化许多require_once调用

时间:2012-01-10 23:52:50

标签: php

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

那么:有没有办法加快这个过程?我假设它需要完成一次,但我也假设它会被缓存用于会话,这似乎不是这种情况,因为这个5-15秒的开销在每个页面加载时是相同的。

希望这是有道理的。

谢谢!

2 个答案:

答案 0 :(得分:0)

require_once背后的想法是确保:

  1. 您没有多次使用该文件。
  2. 加快加载时间,以便不再包含该文件。
  3. PHP在内存中存储已加载的文件。如果你在一个文件上调用require_once然后再次调用它,PHP甚至不会查找该文件,它会看到它已经被加载了,并且不会费心阅读该文件。

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

    但是,我可能会误解这个问题。如果你的意思是每个require_once都不同,那就是另一个故事。如果它们用于加载类,请查看PHP自动加载功能。 PHP: Autoloading Classes。这只会加载被调用的类。

答案 1 :(得分:0)

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

您是否有理由在每个页面上都包含每个课程?如果可能的话,你应该考虑autoloading classes