2012-02-27 102 views
0

只是想知道...是吗?多少加载不使用的.php文件是否会影响性能?

像其中包括20个.php文件,但没有实际使用类(它们可能会被使用)。

+1

这可能会花费你一点的性能,这取决于你的系统和它们有多大。你必须自己衡量它的成本。您可以使用[自动加载](http://php.net/manual/en/language.oop5.autoload.php)按需加载文件 – 2012-02-27 01:15:28

+0

这就是为什么设计模式与加载程序一起存在,是的,它确实影响性能:速度(包含)和内存(包含文件内容) – 2012-02-27 01:16:00

回答

2

我会给一个轻微变种回答这个:如果你是在一个调整VPS或专用服务器上运行

  • :微不足道的金额。
  • 如果您在共享主机服务上运行:它可能会显着降低脚本执行时间的性能。

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

在共享服务上,所有事情都在相反的方向上运行:PHP在用户UID中作为每请求图像运行;没有操作码缓存解决方案支持这种模式,所以一切都需要编译。这里的杀手是需要阅读文件,许多(可能是大多数)共享的LAMP托管提供商使用LAMP层的可扩展服务器场,并在共享的NFS安装的NAS基础设施上使用用户数据。由于这些NFS挂载的时间少于1分钟,所以I/O请求将需要RPC离线服务器。我的博客文章提供了一些基准here。共享IIS主机模板的详细信息是不同的,但净效果是类似的。

我在我的共享服务上运行phpBB论坛软件包,并通过聚合源代码包含的公共集合大致减半了响应时间,正如我描述的here

2

是的,虽然多少取决于一些事情。如果您使用的是PHP加速器,性能成本不会太高,但如果您不是这样,会显着减慢速度。你最好的选择是使用自动加载,所以你只需要在实际使用时加载一些东西,而不是加载所有东西以防万一。这也可能会减少你的内存消耗。

2

当然这会影响性能。你在PHP中所做的一切都是。

性能的多少取决于它们的数据量,执行它们需要多长时间,或者在类的情况下读取它们。

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

编辑:或@Pekka指出,你可以自动加载类。