Possible memory leak?

Tuvas tuvas21 at gmail.com
Wed Jan 25 16:48:52 EST 2006


Fredrik Lundh wrote:
> Giovanni Bajo wrote:
>
> > ------- foo.py -----
> > def iters(n):
> >     s = ''
> >     for i in xrange(n):
> >         s += chr(i%64)
> >     return s
> >
> > def iters2(n):
> >     L = []
> >     for i in xrange(n):
> >         L.append(chr(i%64))
> >     return "".join(L)
> > ------- foo.py -----
> >
> > So, look, it's even faster than the solution you're proposing.
>
> since you know the length, you can preallocate the list
>
>     def iters3(n):
>         L = [None]*n
>         for i in xrange(n):
>             L[i] = chr(i%64)
>         return "".join(L)
>
> or use a preallocated array
>
>     def iters4(n):
>         L = array.array("B", [0])*n
>         for i in xrange(n):
>             L[i] = i%64
>         return L.tostring()
>
> on my machine, the last one is twice as fast as your "even faster"
> solution under 2.4.  in earlier versions, it's just under 5 times faster.
>
> for the OP's problem, a PIL-based solution would probably be ~100
> times faster than the array solution, but that's another story.
>

What do you mean by a PIL based solution? The reason I need to get the
data into the string list is so I can pump it into PIL to give me my
image... If PIL has a way to make it easier, I do not know it, but
would like to know it.

> </F>




More information about the Python-list mailing list