一个没有经验的PHP问题:
我有一个 PHP 脚本文件,我需要在很多地方多次将其包含在不同的页面上。
我可以选择将包含的文件分解为几个较小的文件,并根据需要将这些文件包含在内……或者……我可以将它们全部保存在一个 PHP 文件中。
我想知道在这种情况下对 include() 使用更大的文件和更小的文件是否会对性能产生影响?例如,200KB 文件和 20KB 文件之间是否存在性能差异?
谢谢你。
一个没有经验的PHP问题:
我有一个 PHP 脚本文件,我需要在很多地方多次将其包含在不同的页面上。
我可以选择将包含的文件分解为几个较小的文件,并根据需要将这些文件包含在内……或者……我可以将它们全部保存在一个 PHP 文件中。
我想知道在这种情况下对 include() 使用更大的文件和更小的文件是否会对性能产生影响?例如,200KB 文件和 20KB 文件之间是否存在性能差异?
谢谢你。
200KB 和 20KB 文件之间会有区别……但您可能不会注意到:200KB 文件并没有那么大——而且您通常会使用很多不是“小”的文件,当您'正在构建一个大型应用程序。
.php
加载文件时,有两件事需要时间:
顺便说一句:在一般情况下,您将获得更多的时间/cpu/资源来优化您的 SQL 查询,或者添加一些缓存机制,而不是考虑那种东西。
小心include_once()
(而且require_once()
),运行起来比include()
. 每次include_once()
运行时,PHP 都会在决定是否加载文件之前查找已包含文件的内部索引。索引中包含的内容越多,此查找就越慢。此外,在可能的情况下使用include()
或include_once()
尝试使用绝对路径时,这比相对路径要快得多,因为您不会强迫 PHP 为您计算出绝对路径。正如 ggiroux 所说,像 APC 这样的某种形式的缓存将获得巨大的回报,并让人担心有多少包含调用不相关(很大程度上)(除非你有一些写得不好的代码)。
编辑 -
requires
一旦你开始有几千个或includes
在你的代码库中,担心上述调用只是一个问题。
肯定会有影响,所以一定要使用 include_once() 而不是 include()。您可以考虑使用具有包含缓存的 APC。