什么时候.php文件太大?


When is a .php file too large?

我正在写一个PHP类。目前有1000行代码,文件大小为46 KB。这不是一个疯狂的大小,但这让我思考。

问:由于文件大小和/或PHP文件中包含的代码量,性能在什么时候开始受到影响?

对于php来说,如果有10个文件每100行或1个文件每1000行,则没有明显的差异(特别是如果您使用任何操作码缓存)。

但是从可维护性的角度来看,将类的职责分成几个会更好。

就像其他人建议的那样,对文件大小的主要关注应该是可读性和保持代码库的可理解性。

然而,关于你最初关于PHP文件大小和性能的问题,这取决于需要什么类型的性能。对于不经常执行的PHP代码,例如通过命令行在客户端机器上执行的PHP程序,而不是由访问者加载网页,大文件大小可能不会被注意到。

相反,在高性能场景中,即使相当小的PHP文件也会消耗大量的系统资源。PHP性能的普遍问题是促使Facebook编写自己的JIT虚拟机来执行PHP代码的原因——因为PHP曾经可以接受的性能随着Facebook的扩展而变得可怕。

以上对于一般的优化是正确的——如果没有更广泛的上下文进行分类,很难在好的和坏的性能之间划清界限。如果您关心PHP代码的性能——无论是否与文件大小有关——我建议使用像Xdebug这样的PHP分析器来监视服务器上的系统资源。

根据ssambastien renaud的建议,我在我的回答中添加了以下关于PHP和操作码缓存的信息。虽然不是我自己写的,但是我想指出关于这个几乎涵盖相同主题的StackOverflow问题的公认答案。

我不是什么专家,但我要说的是,在文件大小占PHP内存限制的很大比例之前,您可能不会遇到问题。

我告诉你,我在一个PHP文件中有一堆乱七八糟的代码。我刚检查了一下,有11487行。

该文件和另一个2,056行的文件都包含在我的开发站点的每个页面上。

我没有看到明显的性能问题。

也许我应该解释一下为什么我有这么大的文件。

我专注于让整个程序工作。我决定对大多数类只使用一个文件,这样我就可以轻松地搜索它并在任何类中进行更改,而无需查找文件。完成之后,我将把所有类拆分到单独的文件中,并使用自动加载只加载所需的类。这可能还需要几周的时间,但当我这样做的时候,我会在前后做一些基准测试,看看是否有任何性能差异,但我怀疑是否会有。

现在,我网站上的每个页面都加载这个文件。我刚刚加载了主页,根据Chrome,它花了102毫秒。一个实际使用了大量类并做了一些数据密集型工作并与MySQL交互的页面花费了279毫秒。

所以在我看来,文件大小并不重要,直到它比我的11,487行大得多。为了提高速度,你需要更多地考虑优化你的代码。

例如,我刚刚问了一个关于数组处理的问题,其中一些解决方案让我的代码运行超过5分钟,大约30秒,还有一些解决方案大约280毫秒。不要担心文件大小!