有一个在我的脚本内存泄漏和后2天,我找不到它。 我发现,是造成内存泄漏的循环; 该循环的每次迭代增加了存储器的使用。 我搬到循环到一个函数隔离的变量。 在函数的结束时,我unsetted由函数创建的每个变量,以便get_defined_vars()返回一个空数组。 这里就是我的意思是:
function the_loop(){
$var="value";
... // processing, including using a library
unset($var);
print_r(get_defined_vars()); // prints empty array
}
while(true){
the_loop();
echo memory_get_usage()."\n"; // steadily increases until memory limit is reached
}
我猜测,在定义一些变量the_loop()
仍然在内存中。 我试着用了XDebug的追踪工具,但它并没有帮助。 所有这表明是从长远来看,平均内存使用量增加。 我正在寻找一个工具,可以告诉我在PHP的内存中的所有值。 我将能够辨别基于值的变量。 什么工具可以转储PHP的记忆?