سؤال
وعندما حلقات من خلال العديد من صفحات الويب والدعوة شيء بسيط مثل أدناه
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 روبي، ولكن بقدر ما أعرف، nokogiri بناء الواقع على libxml.
وأنا آسف، ولكن لا أعرف التفاصيل الدقيقة حول هذه المشكلة. انها مجرد لتوجيهك في الاتجاه الصحيح.
لا تنتمي إلى StackOverflow