¿Cómo puedo eliminar objetos (y la memoria que ocupan) creados a través de rpy?Borrado de la memoria utilizada por rpy2
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
El efecto desafortunado es que en mi aplicación, uso de memoria aumenta hasta que no es suficiente y luego se bloquea ... Desde el rpy2 docs:
El objeto en sí mismo sigue estando disponible, y protegidos de la basura colección de R hasta foo se elimina de Python
pero incluso haciendo:
import rpy2.robjects as r
a = r.r('a = matrix(NA, 2000000, 50)')
r.r.rm('a')
del a
r.r.gc()
no libera la memoria utilizada ...
EDIT: rpy2 2.0, Win XP, R 2.12.0
¿Cómo ves que la memoria no se libera? – eyquem
@eyquem: simplemente usando el gráfico y las estadísticas del administrador de tareas :) – Benjamin