PHP可能的内存泄漏

时间:2010-06-17 12:02:48

标签: php memory-leaks loops

我有一个脚本循环数据库,用于转换为gd&的图像。 imagick。

我在每个循环之间取消设置或替换所有变量和对象。

对于每个循环,get_memory_usage(1)显示该脚本使用的并发内存量。这是预期的。

但是,当我运行“top”时,%MEM列报告此脚本(相同的PID)以每个循环的几个百分比递增。

当我完成它们时,我会销毁所有图像,当我运行get_defined_vars()时;只设置标准全局变量和一些变量。

为什么“顶级”%内存使用量与PHP报告的不同?

在10次循环之后,PHP占系统内存的20%。

我在Debian 5上运行php 5.2.6

2 个答案:

答案 0 :(得分:1)

您是否将第一个参数传递给memory_get_usage()?如果没有,你应该先尝试。如需更多信息,我们需要您的源代码。

答案 1 :(得分:0)

我必须自己回答这个问题。

升级到PHP 5.3.2消除了在如此大的比率下堆叠的问题。

因为有一些泄漏,我无法识别,并且无论我做什么,重置GD图像资源填充,我决定让perl脚本运行while循环,并执行PHP脚本< / p>

system("php /opt/cron/tasks.php");

这样PHP总是清空缓冲区/内存。