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

Reply via email to