这个PHP脚本是一个潜在的记忆猪吗?

时间:2012-07-03 01:07:23

标签: php performance memory

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

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

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

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

如果您需要任何进一步的信息,请与我们联系。

2 个答案:

答案 0 :(得分:3)

  

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

这并非完全不正常。 HTMLPurifier library alone is dozens of files,其中大部分可能在正常使用期间加载。

然而,具有100个单独的require_once行(包括每个文件一个一个)是不好的代码味道。正如大卫所说,使用自动加载器。

此外,请勿包含不会使用的代码。我曾经在一个项目上工作,该项目在启动时包含了每个页面的源代码 - 包括未显示的页面的视图/控制器代码。撤消此操作(而只加载正在使用的视图/控制器)会导致可测量的性能提升。

此外,像APC这样的操作码缓存会降低包含开销。如果可能,请考虑使用一个。

  

这个php脚本是一个潜在的记忆猪吗?

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

答案 1 :(得分:1)

不,这不是正常的做法。使用自动装带器。