【发布时间】:2010-06-17 12:02:47
【问题描述】:
我有一个脚本,它遍历数据库以使用 gd 和 imagick 转换图像。
我取消设置或替换每个循环之间的所有变量和对象。
对于每个循环,get_memory_usage(1) 显示该脚本使用的并发内存量。这是预期的。
但是,当我运行“top”时,%MEM 列报告此脚本(相同的 PID)在每个循环中以几个百分比递增。
当我处理完所有图像以及运行 get_defined_vars(); 时,我会销毁它们。只设置了标准的全局变量和我拥有的一些变量。
为什么 "top" % Memory Usage 与 PHP 报告的不同?
10 次循环后,PHP 占用了 20% 的系统内存。
我在 Debian 5 上运行 php 5.2.6
【问题讨论】:
-
您可能会发现这很有帮助stackoverflow.com/questions/849549/…
-
@Mike B 接受的答案已经过时,因为 PHP 现在确实有一个垃圾收集器。这在这个问题上并不重要,因为他正在运行 5.2-
-
@Artefacto 当时我也是,这就是为什么我认为它会对 dropson 有所帮助。所以接受的答案仍然适用于两个问题的指定参数。
标签: php memory-leaks loops