DOMDocument / Xpath vazando memória durante o longo processo de linha de comando - qualquer maneira de desconstruir essa classe

Eu criei um aplicativo de raspagem de php de linha de comando que usa XPath para analisar o HTML - o problema é toda vez que uma nova instância de classe DOMXPath é carregada em um loop Eu estou tendo uma perda de memória aproximadamente igual ao tamanho do XML que está sendo carregado. O script é executado e executado, construindo lentamente o uso de memória até atingir o limite e sai

Tentei forçar a coleta de lixo comgc_collect_cycles() e PHP ainda não estão recuperando memória de solicitações antigas do Xpath. Na verdade, a definição da classe DOMXPath nem parece incluir uma função destruidora?

Então, minha pergunta é ... existe alguma maneira de forçar a limpeza de lixo emDOMXPath depois de extrair os dados necessários? O uso de unset na instância da classe previsivelmente não faz nad

O código não é nada de especial, apenas coisas padrão do Xpath:

//Loaded outside of loop
$this->dom = new DOMDocument(); 

//Inside Loop
$this->dom->loadHTML($output);  
$xpath = new DOMXPath($this->dom);
$nodes = $xpath->query("//span[@class='ckass']");

//unset($this->dom) and unset($xpath) doesn't seem to have any effect

Como você pode ver acima, mantive a instanciação de um novoDOMDocument classe fora do loop, embora isso não pareça melhorar o desempenho. Eu até tentei tirar o$xpathnstância da classe @ fora do loop e carregando o DOM no Xpath diretamente usando o__constructor método, a perda de memória é a mesm

questionAnswers(2)

yourAnswerToTheQuestion