加载你没有的.php文件';不要使用影响性能


Does loading .php files that you don't use affect performance?

只是想知道。。。是吗?多少

比如包含20个php文件,其中包含类,但没有实际使用这些类(尽管可能会使用它们)。

我将对此给出一个轻微的变体答案:

  • 如果您在经过调优的VPS或专用服务器上运行:数量微不足道
  • 如果您在共享托管服务上运行:这可能会大大降低脚本执行时间的性能

为什么?因为在第一种情况下,您应该配置一个PHP操作码缓存,如APC或Xcache,从实际意义上讲,这可以消除脚本负载和编译开销。即使在需要读取或检查文件的情况下,如果(虚拟)服务器专用于应用程序,元数据和文件数据也将是"热"的,因此大部分缓存在文件系统缓存中。

在共享服务上,一切都朝着相反的方向运行:PHP在用户UID中作为一个按请求的映像运行;没有操作码缓存解决方案支持这种模式,因此所有内容都需要编译。这里的杀手是需要读取文件,许多(也许是大多数)共享LAMP托管提供商使用LAMP层的可扩展服务器场,用户数据位于安装NFS的共享NAS基础设施上。由于带有的这些NFS装载具有小于1分钟的acremin,因此I/O请求将要求RPC离开服务器。我的博客文章在这里给出了一些基准。共享IIS托管模板的详细信息不同,但实际效果相似。

我在我的共享服务上运行phpBB论坛包,通过聚合常见的源代码包,我的响应时间大约减半,正如我在这里描述的那样。

是的,不过多少取决于很多因素。如果使用PHP加速器,性能成本不会太高,但如果不使用,则会大大降低速度。你最好的选择通常是使用自动加载,所以你只在实际使用时加载东西,而不是为了以防万一而加载所有东西。这可能也会减少你的内存消耗。

当然,它会影响性能。你在PHP中所做的一切都是如此。

性能的大小取决于它们中有多少数据,以及执行它们或在类的情况下读取它们所需的时间。

如果你不使用它们,为什么要包括它们?我假设您使用了一些主引擎文件或头文件,并且应该重新考虑包含文件的方法。

编辑:或者正如@Pekka所指出的,您可以自动加载类。

简短回答-是的。对于更长的答案,快速谷歌搜索显示这些-包括不必要的php文件会减慢网站的速度吗;包含多个文件的PHP性能

搜索有帮助!

--Matīss