ループで PHPQuery (HTML パーサー) を使用しており、phpQuery::unloadDocuments()
. ループは次のように単純化されます。
while(...){
$doc="parsed stuff";
...
unset($doc);
}
ただし、しばらくするとスクリプトがメモリ不足になるため、これにはメモリ リークがあります。オンラインで検索した後、誰かがメモリ リークを避けるために関数でラップすることを勧めたので、次のように変更しました。
function r(){
$doc="parsed stuff";
...
unset($doc);
}
while(...)
r();
これでメモリリークは止まりました。どうしてこれなの?