문제
많은 웹 페이지를 반복하고 아래와 같은 간단한 것을 호출 할 때
manyhtmlpages.each do |page|
doc = Nokogiri::HTML(page)
puts doc.xpath("/html/body/h2[1]","/html/body/a[1]").to_s
end
메모리가 부족하여 스크립트가 종료 될 때까지 메모리 소비가 지속적으로 올라갑니다.
doc.xpath 비트를 제거하면 위의 오류는 경험이 없습니다.
해결책
문제의 근본은 코드가 페이지와 Doc이 모두 범위를 떠날 때까지 수집되지 않는다는 점 에서이 문제가 있다고 생각합니다 (내가 틀렸다면 수정).
비슷한 문제가 설명되어 있습니다 여기.
이것은 libxml-ruby의 문제이지만, 내가 아는 한, Nokogiri는 실제로 libxml을 기반으로합니다.
미안하지만이 문제에 대한 정확한 세부 사항은 모르겠습니다. 그것은 당신을 올바른 방향으로 가리키는 것입니다.
제휴하지 않습니다 StackOverflow