Pregunta

al recorrer muchas páginas web y llamar a algo simple como a continuación

manyhtmlpages.each do |page|

doc = Nokogiri::HTML(page) 

puts doc.xpath("/html/body/h2[1]","/html/body/a[1]").to_s

end

Observo que el consumo de memoria aumenta continuamente hasta que el script termina debido a la falta de memoria.

cuando elimino el bit doc.xpath, este error anterior no se experimenta.

¿Fue útil?

Solución

Creo que la raíz del problema radica en que el código no se recolecta basura hasta que tanto la página como el documento abandonan el alcance (corrígeme si me equivoco).

Se describe un problema similar aquí .
Este es un problema con libxml-ruby, pero que yo sepa, nokogiri en realidad se basa en libxml.

Lo siento, pero no sé los detalles exactos sobre este problema. Es solo para orientarte en la dirección correcta.

Licenciado bajo: CC-BY-SA con atribución
No afiliado a StackOverflow
scroll top