[Numpy-discussion] ndarray subclass causes memory leak
Jeremy Mayes
jeremy.mayes@gmail....
Fri Aug 14 06:39:21 CDT 2009
This simple example causes a massive leak in v1.3.0 which didn't exist in
v1.0.1. What am I doing wrong? If I replace
arr = [Array((2,2)), Array((2,2))]
with
arr = [numpy.ndarray((2,2,)), numpy.ndarray((2,2))]
then I don't have the leak
import numpy
import gc
class Array(numpy.ndarray):
def __new__(subtype, shape, dtype=float, buffer=None, offset=0,
strides=None, order=None, info=None):
return numpy.ndarray.__new__(subtype, shape, dtype, buffer, offset, strides,
order)
def __array_finalize__(self, obj):
print 'called array_finalize'
if __name__=='__main__':
arr = [Array((2,2)), Array((2,2))]
nbytesAllocated = 0
for i in xrange(1000000000):
a = numpy.array(arr)
nbytesAllocated += a.nbytes
if i%1000 == 0:
print 'allocted %s'%nbytesAllocated
gc.collect()
--
--jlm
--
--jlm
--
--jlm
-------------- next part --------------
An HTML attachment was scrubbed...
URL: http://mail.scipy.org/pipermail/numpy-discussion/attachments/20090814/81fc5e59/attachment.html
More information about the NumPy-Discussion
mailing list