当循环浏览许多网页并调用如下简单的东西时
manyhtmlpages.each do |page|
doc = Nokogiri::HTML(page)
puts doc.xpath("/html/body/h2[1]","/html/body/a[1]").to_s
end
我观察到内存消耗不断增加,直到脚本因内存不足而终止。
当我删除 doc.xpath 位时,没有遇到上述错误。
我认为问题的根源在于代码在页面和文档离开范围之前不会被垃圾收集(如果我错了,请纠正我)。
这里描述了一个类似的问题。
这是 libxml-ruby 的一个问题,但据我所知,nokogiri 实际上是在 libxml 上构建的。
对不起,我不知道这个问题的确切细节。这只是为您指明正确的方向。