Optimizing multiple dispatch
Jeff Epler
jepler at unpythonic.net
Thu Jun 3 11:30:40 EDT 2004
Pyrex is just a translator, there's no dependency on a Pyrex library or
include file when you actually want to compile the generated .c
On Thu, Jun 03, 2004 at 04:55:19PM +0200, Jacek Generowicz wrote:
> Jeff Epler <jepler at unpythonic.net> writes:
>
> > Avoding map() may help:
> > tuple([type(a) for a in args])
>
> Nonononononooooo! :-)
[...]
> > ... hmm, map is faster than listcomp. my mistake!
>
> :-)
>
> I've asked for optimization advice a few times here, and usually the
> responses include "replace map with a list comprehension" ... and yet
> the map is always faster. I wonder where people get this idea that map
> is slow ... until this started happening I had always assumed that
> "everyone" knows that the map/reduce/filter family are the fastest
> Python looping constructs.
No message about optimization should be without one downright wrong
suggestion.
The common wisdom about listcomp speed may apply when the body doesn't
include a function call, but the map version would include a lambda:
$ timeit 'map(lambda x:x+1, range(100))'
1000 loops, best of 3: 230 usec per loop
$ timeit '[x+1 for x in range(100)]'
10000 loops, best of 3: 156 usec per loop
Jeff
-------------- next part --------------
A non-text attachment was scrubbed...
Name: not available
Type: application/pgp-signature
Size: 196 bytes
Desc: not available
URL: <http://mail.python.org/pipermail/python-list/attachments/20040603/17ea931c/attachment.sig>
More information about the Python-list
mailing list