문제

많은 웹 페이지를 반복하고 아래와 같은 간단한 것을 호출 할 때

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을 기반으로합니다.

미안하지만이 문제에 대한 정확한 세부 사항은 모르겠습니다. 그것은 당신을 올바른 방향으로 가리키는 것입니다.

라이센스 : CC-BY-SA ~와 함께 속성
제휴하지 않습니다 StackOverflow
scroll top