这个 php 脚本是潜在的内存消耗者吗?


Is this php script a potential memory hog?

一个php脚本在开始时包含/加载大约100个文件是正常的吗? 这些文件与数据库,帮助程序,实用程序和常见任务的功能有关。 这是通过使用 require_once .

我只是在上下文中问这个问题,这是否是其他 php 脚本(开源或商业)中的正常做法。 还没有使用任何php框架,所以我不确定他们加载了多少文件。

我将在具有共享 CPU 核心的 VPS 上使用此脚本 ,1 Gb Ram,40 Gb 硬盘空间。

现在我知道这个问题可能还有许多其他变量,例如每个文件的 CPU 密集程度,但是,我在这里的基本问题是任何脚本在开始时将大约 100 个文件加载或初始化到内存中是正常的吗?

如果您需要任何进一步的信息,请告诉我。

一个php脚本在开始时包含/加载大约100个文件是正常的吗?

这并非完全不正常。 仅 HTMLPurifier 库就有几十个文件,其中大部分可能是在正常使用期间加载的。

但是,有 100 个单独的 require_once 行,包括每个文件一个接一个,是糟糕的代码气味。 正如大卫所说,使用自动加载机。

此外,不要包含不会使用的代码。 我曾经参与过一个项目,该项目在启动时天真地包含每个页面的源代码 - 包括未显示页面的视图/控制器代码。 撤消此操作(而是仅加载正在使用的视图/控制器)可显著提高性能。

此外,像 APC 这样的操作码缓存将减少包含开销。 如果可能的话,考虑使用一个。

这个 php 脚本是潜在的内存消耗吗?

你告诉我。 量。 轮廓。 实验。 我们可以提供的关于您特定应用性能的任何扶手椅猜测都是毫无价值的。 测量很容易。 使用 XHProf,或直接调用memory_get_peak_usage(true)

不,这不是正常的做法。使用自动加载机。