包含多个文件的PHP性能


PHP Performance on including multiple files

在我当前的工作流程中,我会在需要的时候包含函数和类文件。然而,这可能会变得非常混乱,因为你有很多文件,其中一些依赖于其他文件。

所以我正在考虑使用一个头文件,它包含在includes目录中的文件上。但我的问题是,在我需要的时候,这样做是否有PHP性能问题。通常情况下,我必须使用include_once,所以做1个大的include可以消除这种需要。

最好的方法可能是自动加载。那么,您根本不需要(手动)包含任何类。看看这个。我建议使用spl_autoload_register()-函数。这将即时解决依赖关系。在大多数情况下,includes的性能实际上是无关紧要的。缓慢的事情通常发生在其他地方。使用自动加载还有延迟加载的额外好处。您不会加载未使用的源文件。这甚至可能加快应用程序的速度。

通常,PHP的性能(速度)不受代码行或文件数量的影响,而是受以下因素的影响:

  • 访问数据库
  • 访问文件系统
  • 访问第三方API(SOAP…)
  • 编码样式

PHP代码是动态解释的。如果不使用给定的代码段,则不会对其进行"编译",因此不会对性能造成影响。

然而,给定页面(及其包含的内容)上的所有代码都要经过语法检查,因此可能会稍微慢一些。

当然,我会考虑你所拥有的内含物,以及你是否真的需要它们。

是一种性能影响,但不是很重要。做任何能让你写代码更快更容易的事情。如果最终你发现你真的需要1毫秒的时间,并且你已经在其他地方修剪了所有其他脂肪,那就去做吧。否则,你就把开发时间浪费在了努力做到"完美"上,而这实际上从来没有产生实际的影响。

我建议您查看自动加载:手动。我还建议在一个__autoload()函数上使用spl_autoload_register,因为它允许通过分离模块或名称空间进行更大的控制。

包含文件确实会影响应用程序的性能,因为它需要从磁盘读取应用程序,但如果文件数量低于100个左右,这就很微不足道了。

顺便说一句,如果你不喜欢每次都包含你的类文件,请查看神奇的方法autoload:

function __autoload($class_name) {
    include $class_name . '.php';
}

http://php.net/manual/en/language.oop5.autoload.php