In article <[EMAIL PROTECTED]>,
 Erik Max Francis <[EMAIL PROTECTED]> wrote:

> David C. Ullrich wrote:
> 
> > Thanks. I would have guessed that I'd want low-level style code;
> > that's the sort of thing I have in mind. In fact the only thing
> > that seems likely to come up right now is looping through an
> > array of bytes, modifying them. The plan is to use the array
> > module first to convert a string or a list to an array, outside
> > the accelerated part, then maybe do something like
> > 
> > for j in range(len(bytes)/3):
> >   g = (bytes[3*j] + bytes[3*j+1] + bytes[3*j+2])/3
> >   bytes[3*j] = bytes[3*j+1] = bytes[3*j+2] = g
> 
> If len(bytes) is large, you might want to use `xrange`, too.  `range` 
> creates a list which is not really what you need.

I didn't follow the explanation, but I read in the docs
that xrange can actually be slower under Psyco.

This morning I learned that my guess that array.array was
a good idea was correct: When I pass a list of ints to the
routine above it gets accelerated by a factor of between
10 and 15, while if I pass an array it's closer to 50.

This is so cool. Maybe I already said that.

-- 
David C. Ullrich
--
http://mail.python.org/mailman/listinfo/python-list

Reply via email to