DOMDocument / Xpath perdiendo memoria durante el largo proceso de la línea de comandos: cualquier forma de deconstruir esta clase

He creado una aplicación de php scraping de línea de comandos que utiliza XPath para analizar el HTML: el problema es que cada vez que se carga una nueva instancia de clase DOMXPath en un bucle, obtengo una pérdida de memoria aproximadamente igual al tamaño del XML cargado. El script se ejecuta y se ejecuta, aumentando lentamente el uso de la memoria hasta que alcanza el límite y se cierra.

He intentado forzar la recolección de basura congc_collect_cycles() y PHP todavía no recupera la memoria de las antiguas solicitudes de Xpath. De hecho, la definición de la clase DOMXPath ni siquiera parece incluir una función destructora.

Así que mi pregunta es ... ¿hay alguna forma de forzar la limpieza de basura enDOMXPath después de que ya he extraído los datos necesarios? Usar unset en la instancia de clase no hace nada previsiblemente.

El código no es nada especial, solo cosas estándar de 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

omo puede ver arriba, he mantenido la instanciación de una nuevaDOMDocument clase fuera del ciclo, aunque eso no parece mejorar el rendimiento. Incluso he intentado tomar la$xpath instancia de clase fuera del bucle y cargando el DOM en Xpath directamente usando el__constructor método, la pérdida de memoria es la misma.

Respuestas a la pregunta(2)

Su respuesta a la pregunta