Wie kann ich mit rpy erstellte Objekte (und den von ihnen belegten Speicher) löschen?
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
Der unglückliche Effekt ist, dass in meiner Anwendung der Speicherverbrauch steigt, bis er nicht mehr ausreicht, und dann stürzt sie ab... Aus dem rpy2 docs :
Das Objekt selbst bleibt verfügbar, und geschützt vor R's Garbage Sammlung geschützt, bis foo aus Python
sondern auch tun:
import rpy2.robjects as r
a = r.r('a = matrix(NA, 2000000, 50)')
r.r.rm('a')
del a
r.r.gc()
gibt den verwendeten Speicher nicht frei...
EDIT: rpy2 2.0, Win XP, R 2.12.0