-----BEGIN PGP SIGNED MESSAGE----- Hash: SHA1 Hi Am 08.03.2012 um 20:39 schrieb Pauli Virtanen:
> 08.03.2012 17:37, Christoph Gohle kirjoitti: >> thanks for testing. I have now tried on different platforms. I get >> all kinds of crashes on os x (now with numpy 1.6.1) and windows >> with numpy 1.6.0. On Ubuntu with numpy 1.3.0 I get a hughe memory >> leak... >> >> Any hints would be welcome. > > The type object inherits `tp_alloc` from Numpy. This routine always > allocates memory of size NPY_SIZEOF_PYARRAYOBJECT for the > PyArrayObject. Therefore, the write to new->unit in your > __array_finalize__ goes to unallocated memory. > > This is probably a bug in Numpy --- arrayobject.c:array_alloc should > respect the size specified by the subtype. > > A workaround is probably to specify a suitable tp_alloc routine yourself: > > PyType_GenericAlloc, /* tp_alloc */ > unitArray_new, /* tp_new */ > _PyObject_Del /* tp_free */ > OK, I did that. And I get no more segfaults as far as I can tell. But there is still a memory leak: In [1]: import spampub In [2]: a=[spampub.UnitArray(i,{'s':i}) for i in xrange(100000)] In [3]: del a after the last two statements, python uses ~60MB more memory than before. Thanks for your help Christoph > -- > Pauli Virtanen > > _______________________________________________ > NumPy-Discussion mailing list > NumPy-Discussion@scipy.org > http://mail.scipy.org/mailman/listinfo/numpy-discussion Christoph Gohle - -- Max-Planck-Institut für Quantenoptik Abteilung Quantenvielteilchensysteme Hans-Kopfermann-Strasse 1 85748 Garching christoph.go...@mpq.mpg.de tel: +49 89 32905 283 fax: +49 89 32905 313 -----BEGIN PGP SIGNATURE----- Version: GnuPG/MacGPG2 v2.0.14 (Darwin) iEYEARECAAYFAk9ZTVgACgkQLYu25rCEIztbcwCfcyeQ+FtKTOwFUGbleX/CrjPi nZcAnj86kejcAO45YbX+I+rxhU9kq4PU =KGdt -----END PGP SIGNATURE----- _______________________________________________ NumPy-Discussion mailing list NumPy-Discussion@scipy.org http://mail.scipy.org/mailman/listinfo/numpy-discussion