On Jul 7, 2008, at 8:42 PM, Robert Bradshaw wrote:
On Jul 7, 2008, at 8:37 PM, Guillaume Chereau wrote:Hello all, I am currently using cython for a project related to openmoko cellphone : http://charlie137-2.blogspot.com/2008/07/introducing- tichy.htmlI noticed that the memory is constantly increasing when I use cython. Itracked down the problem to the case where I create a subclass of a cython class and then redefine a cpdef method, asking it to call the parent method, but ONLY if the cpdef method then call an other cpdef method ! Here is the smallest example I could come with that fails : == test.pyx == cdef class A: cpdef func(self): return cpdef test(self): self.func() == main.py == import test import gc class B(test.A): def test(self): test.A.test(self) b = B() for i in range(10): b.test() gc.collect() print len(gc.get_objects()) The output will show that some objects are not released. Is it a known bug ? Is there a way to avoid it ?This isn't a known bug, but does sound like something fishy is going on. Thanks for the report. The easiest fix I have for now is to make one or the other methods an ordinary def method (sacrificing speed for better memory handling), but I'll be looking into it.
See http://hg.cython.org/cython-devel/rev/f612fb161cd0
PGP.sig
Description: This is a digitally signed message part
_______________________________________________ Cython-dev mailing list [email protected] http://codespeak.net/mailman/listinfo/cython-dev
