[Numpy-discussion] Deprecating PyDataMem_RENEW ?

Anne Archibald peridot.faceted@gmail....
Mon May 5 13:25:55 CDT 2008

2008/5/5 Robert Kern <robert.kern@gmail.com>:
> On Mon, May 5, 2008 at 7:44 AM, David Cournapeau
>  <david@ar.media.kyoto-u.ac.jp> wrote:
> >  In numpy, we can always replace realloc by malloc/free, because we know
>  >  the size of the old block: would deprecating PyMemData_RENEW and
>  >  replacing them by PyMemeData_NEW/PyMemData_FREE be possible, such as to
>  >  make all numpy arrays follow a default alignement ? There are only a few
>  >  of them in numpy (6 of them), 0 in scipy, and I guess extensions never
>  >  really used them ?
>  I am in favor of at least trying this out. We will have to have a set
>  of benchmarks to make sure we haven't hurt the current uses of
>  PyMemData_RENEW which Tim points out.

realloc() may not be a performance win anyway. Allocating new memory
is quite fast, copying data is quite fast, and in-place realloc()
tends to cause memory fragmentation - take an arena full of 1024-byte
blocks and suddenly make one of them 256 bytes long and you haven't
gained anything at all in most malloc() implementations. So yes,


More information about the Numpy-discussion mailing list