Как я могу очистить объекты (и занимаемую ими память), созданные с помощью rpy?
import rpy2.robjects as r
a = r.r('a = matrix(NA, 2000000, 50)')
del a #if I do this, there is no change in the amount of memory used
r.r('rm(list=(ls(all=TRUE)))') # Same here, the objects disappear, but the memory is still used
К сожалению, в моем приложении использование памяти увеличивается до тех пор, пока не становится недостаточно, а затем происходит сбой... Из rpy2 документов :
Сам объект остается доступным и защищен от сборки мусора R до тех пор, пока foo не будет удален из Python
, нодаже делать:
import rpy2.robjects as r
a = r.r('a = matrix(NA, 2000000, 50)')
r.r.rm('a')
del a
r.r.gc()
не освобождает используемую память ...
РЕДАКТИРОВАТЬ: rpy2 2.0, Win XP, R 2.12.0