我有一个脚本循环数据库,用于转换为gd&的图像。 imagick。
我在每个循环之间取消设置或替换所有变量和对象。
对于每个循环,get_memory_usage(1)显示该脚本使用的并发内存量。这是预期的。
但是,当我运行“top”时,%MEM列报告此脚本(相同的PID)以每个循环的几个百分比递增。
当我完成它们时,我会销毁所有图像,当我运行get_defined_vars()时;只设置标准全局变量和一些变量。
为什么“顶级”%内存使用量与PHP报告的不同?
在10次循环之后,PHP占系统内存的20%。
我在Debian 5上运行php 5.2.6
答案 0 :(得分:1)
您是否将第一个参数传递给memory_get_usage()
?如果没有,你应该先尝试。如需更多信息,我们需要您的源代码。
答案 1 :(得分:0)
我必须自己回答这个问题。
升级到PHP 5.3.2消除了在如此大的比率下堆叠的问题。
因为有一些泄漏,我无法识别,并且无论我做什么,重置GD图像资源填充,我决定让perl脚本运行while循环,并执行PHP脚本< / p>
system("php /opt/cron/tasks.php");
这样PHP总是清空缓冲区/内存。