memory problem
Verfasst: Mittwoch 25. März 2009, 18:23
hallo schlangenbeschwoerer,
ich habe ein speicherproblem in meinem python program und dachte dass ich mich an versiertere pythonianer wende die vielleicht ein how to kennen was mir weiterhilft.
meine python - swig schnitstelle verwaltet c++ klassen (3D volumen) und laest allerhand algorithmen auf diese los.
bei einer methode habe ich festgestellt dass sie den speicher zukleistert und irgendwo einen speicherteil nicht freigibt, und somit bei wiederholung das ganze system einfriert weil der speicher aus ist.
also ein klassisches memory leak das man bei c++ mit valgrind finden wuerde.
da ich aber nun mein algorithmus in python habe frage ich mich wie ich am besten den speicher ueberwachen koennte um mein leak zu finden.
gibts python tools die sowas koennen?
valgrind dumpt leider nicht den python code mit in sein protokoll wenn man es wie folgt aufruft:
valgrind --tool=memcheck --suppressions=./python.supp --leak-resolution=high --leak-check=full --show-reachable=yes --log-file=val1 python tmp &
es sieht so aus als wuerden ein paar python-objekte herrenlos im speicher rumschwirren die nur bei ende von python selbst freigegeben werden. (garbage collector oder aehnliches)
das problem ist recht komplex, deswegen waer es cool wenn ihr allgemeine antworten / links haettet... (wenn ueberhaupt)
danke schonmal fuer die hilfe,
thomas
ich habe ein speicherproblem in meinem python program und dachte dass ich mich an versiertere pythonianer wende die vielleicht ein how to kennen was mir weiterhilft.
meine python - swig schnitstelle verwaltet c++ klassen (3D volumen) und laest allerhand algorithmen auf diese los.
bei einer methode habe ich festgestellt dass sie den speicher zukleistert und irgendwo einen speicherteil nicht freigibt, und somit bei wiederholung das ganze system einfriert weil der speicher aus ist.
also ein klassisches memory leak das man bei c++ mit valgrind finden wuerde.
da ich aber nun mein algorithmus in python habe frage ich mich wie ich am besten den speicher ueberwachen koennte um mein leak zu finden.
gibts python tools die sowas koennen?
valgrind dumpt leider nicht den python code mit in sein protokoll wenn man es wie folgt aufruft:
valgrind --tool=memcheck --suppressions=./python.supp --leak-resolution=high --leak-check=full --show-reachable=yes --log-file=val1 python tmp &
es sieht so aus als wuerden ein paar python-objekte herrenlos im speicher rumschwirren die nur bei ende von python selbst freigegeben werden. (garbage collector oder aehnliches)
das problem ist recht komplex, deswegen waer es cool wenn ihr allgemeine antworten / links haettet... (wenn ueberhaupt)
danke schonmal fuer die hilfe,
thomas