1

我的 drupal 站点有一个管理员页面,允许管理员将用户分配到市场。我使用 jquery 手风琴小部件在单击时显示每个用户的所有市场。该页面多年来一直在增长,我拥有 72 个市场和 157 个用户。所以当生成 html 时,在页面被发送到客户端之前,至少有 72 x 157 = 11,304 个 dom 元素写入到 html 中。我通过达到 143.75m 打破了允许的内存限制,所以当我想添加用户时我必须提高它。我知道这是一个糟糕的设计,但我有兴趣了解非常大的 html 页面在服务器必须执行的工作方面的复杂性。页面上生成的 DOM 元素数量与服务器所需的允许内存量之间是否存在一般的数学相关性?

4

1 回答 1

1

服务器端的内存在很大程度上与生成的 DOM 元素的数量无关,因为您可能只是将它们作为字符串回显。显然,DOM 元素的数量与 HTML 的大小(以字节为单位)相关,这最终可能会影响所使用的内存量。(这部分很容易测量:将生成的 HTML 保存为文件,并询问您的操作系统它在磁盘上占用了多少空间。)

不过,内存使用的最大部分可能是用于生成该 HTML 的实际数据(数组、对象、中间变量)。例如,如果您正在从数据库中检索数据,您处理的行数越多,结果集将占用的内存就越多;当它在不同的表示之间转换时,它可能会多次在内存中。

值得注意的是,PHP 5.4 对内存使用进行了一些相当大的改进,因此如果您运行的是早期版本,则可能值得考虑升级的可能性。

于 2013-05-06T02:33:46.490 回答