[Python-Dev] genexps slow? (original) (raw)
Tim Peters tim.one at comcast.net
Wed Mar 31 00:51:20 EST 2004
- Previous message: [Python-Dev] genexps slow?
- Next message: [Python-Dev] genexps slow?
- Messages sorted by: [ date ] [ thread ] [ subject ] [ author ]
[Guido]
Can anybody explain this?
[guido at guido linux]$ ./python ../Lib/timeit.py -s 'r=range(10000)' 'sum([x for x in r])' 100 loops, best of 3: 7.75 msec per loop [guido at guido linux]$ ./python ../Lib/timeit.py -s 'r=range(10000)' 'sum(x for x in r)' 100 loops, best of 3: 8.23 msec per loop (I believe this is with the penultimate version of the patch from SF.)
Does a sub-10% difference really need explanation? Resuming a generator function is a lot cheaper than calling a function, but there's still a non-trivial amount of code to get in and out of eval_frame() each time, which the listcomp version gets to skip. Make r a lot bigger, and I expect the genexp will get relatively faster (due to better cache behavior). Timing plain 'sum(r)' would also be revealing (of something ).
- Previous message: [Python-Dev] genexps slow?
- Next message: [Python-Dev] genexps slow?
- Messages sorted by: [ date ] [ thread ] [ subject ] [ author ]