On Fri, May 14, 2010 at 3:26 PM, <[email protected]> wrote: > On Fri, May 14, 2010 at 2:43 PM, Brian Blais <[email protected]> wrote: >> Hello, >> >> I have the following code, where I noticed a memory leak with +=, but >> not with + alone. >> import numpy >> >> m=numpy.matrix(numpy.ones((23,23))) >> >> for i in range(10000000): >> m+=0.0 # keeps growing in memory >> # m=m+0.0 # is stable in memory >> >> >> My version of python is 2.5, numpy 1.3.0, but it also causes memory >> build-up in 2.6 with numpy 1.4.0, as distributed by the Enthought >> Python Distribution. >> >> It's easy to work around, but could cause someone some problems. >> Anyone else get this? > > I get it also with python 2.5 numpy 1.4.0 > > Who owns the data ? > >>>> m=np.matrix(np.ones((3,3))) >>>> m.flags > C_CONTIGUOUS : True > F_CONTIGUOUS : False > OWNDATA : True > WRITEABLE : True > ALIGNED : True > UPDATEIFCOPY : False > >>>> m+=0 >>>> m.flags > C_CONTIGUOUS : True > F_CONTIGUOUS : False > OWNDATA : False <- GONE > WRITEABLE : True > ALIGNED : True > UPDATEIFCOPY : False > > Josef >
Maybe it's not a "true" memory leak, my python process eventually garbage collected the extra memory that was built up. Josef >> >> >> bb >> >> -- >> Brian Blais >> [email protected] >> http://web.bryant.edu/~bblais >> http://bblais.blogspot.com/ >> >> >> >> _______________________________________________ >> NumPy-Discussion mailing list >> [email protected] >> http://mail.scipy.org/mailman/listinfo/numpy-discussion >> > _______________________________________________ NumPy-Discussion mailing list [email protected] http://mail.scipy.org/mailman/listinfo/numpy-discussion
