PHP垃圾收集和函数
我在循环中使用PHPQuery(HTML解析器),每次都使用PHP垃圾收集和函数,php,memory-leaks,phpquery,Php,Memory Leaks,Phpquery,我在循环中使用PHPQuery(HTML解析器),每次都使用PHPQuery::unloadDocuments()来取消前一个文档的设置。循环简化为: while(...){ $doc="parsed stuff"; ... unset($doc); } 但是,这其中存在内存泄漏,因为脚本在一段时间后内存不足。在线搜索后,有人建议为了避免内存泄漏,我应该将其包装在函数中,因此我将其更改为: function r(){ $doc="parsed stuff"; ... u
PHPQuery::unloadDocuments()
来取消前一个文档的设置。循环简化为:
while(...){
$doc="parsed stuff";
...
unset($doc);
}
但是,这其中存在内存泄漏,因为脚本在一段时间后内存不足。在线搜索后,有人建议为了避免内存泄漏,我应该将其包装在函数中,因此我将其更改为:
function r(){
$doc="parsed stuff";
...
unset($doc);
}
while(...)
r();
现在,内存泄漏停止了。为什么会这样?看看这个,is有一个很好的例子。你的意思是为什么现在没有内存泄漏?循环中定义了其他变量吗?silentboy:没错,Koterpillar:我想有很多变量,超过50个。截面:5.3