6 Stimmen

Von rpy2 belegter Speicherplatz wird gelöscht

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

CodeJaeger.com

CodeJaeger ist eine Gemeinschaft für Programmierer, die täglich Hilfe erhalten..
Wir haben viele Inhalte, und Sie können auch Ihre eigenen Fragen stellen oder die Fragen anderer Leute lösen.

Powered by:

X