Próbuję uruchomić prosty program do wyodrębniania tabel z kodu HTML. Jednak wydaje się, że istnieje pewien problem z pamięcią w readHTMLTable w pakiecie XML. Czy jest jakiś sposób, abym mógł po prostu obejść to łatwo. Jakoś określenie specjalnej pamięci dla tego polecenia, a następnie zwolnienie go ręcznie.Obejście problemu wycieku pamięci R z pakietem XML
Próbowałem umieścić to w funkcji i próbowałem użyć gc() i różnych wersji R i tego pakietu i nic nie działa. Zaczynam rozpaczać.
Przykładowy kod. Jak uruchomić to bez eksplozji rozmiaru pamięci?
library(XML)
a = readLines("http://en.wikipedia.org/wiki/2014_FIFA_World_Cup")
while(TRUE) {
b = readHTMLTable(a)
#do something with b
}
Edit: Coś takiego jeszcze bierze wszystko z mojej pamięci:
library(XML)
a = readLines("http://en.wikipedia.org/wiki/2014_FIFA_World_Cup")
f <- function(x) {
b = readHTMLTable(x)
rm(x)
gc()
return(b)
}
for(i in 1:100) {
d = f(a)
rm(d)
gc()
}
rm(list=ls())
gc()
Używam Win 7 32bit i starał się i 64bit.
Mam poważne problemy z pamięcią przy użyciu pakietu 'XML' w systemie Windows. Moim rozwiązaniem jest okresowe restartowanie R (zapisywanie danych do CSV). Wysłałem e-maila do autora pakietu. Wymieniliśmy kilka e-maili, ale w zasadzie powiedział, że nie może/nie będzie debugować systemu Windows. – rrs
Ok. Ponowne uruchamianie R działa, ale nie jest to takie przyjemne zadanie ręczne co 5 minut. Domyślam się, że jedynym wyjściem jest przejście na Linuksa. XML to bardzo fajny pakiet, ale niestety zniszczony z powodu tych problemów z pamięcią. – Pekka