squeeze out some performance
Robin Becker
robin at reportlab.com
Mon Dec 9 10:54:36 EST 2013
On 06/12/2013 22:07, Joel Goldstick wrote:
..........
>>
>
> Not that this will speed up your code but you have this:
>
> if not clockwise:
> s = start
> start = end
> end = s
>
> Python people would write:
> end, start = start, end
this works for some small number of variables, but on my machine with python 2.7
I start losing with 4 variables eg
> C:\code\optichrome\74663>python -mtimeit -s"a=1;b=2;c=3;d=4" "a,b,c,d=b,c,d,a"
> 1000000 loops, best of 3: 0.206 usec per loop
>
> C:\code\optichrome\74663>python -mtimeit -s"a=1;b=2;c=3;d=4" "t=a;a=b;b=c;c=d;d=t"
> 10000000 loops, best of 3: 0.118 usec per loop
It doesn't seem to make much difference that the variables are related as I see
a similar behaviour for simple assignments
> C:\code\optichrome\74663>python -mtimeit -s"a=1;b=2;c=3;d=4;e=5;f=6;g=7;h=8" "a,b,c,d=e,f,g,h"
> 1000000 loops, best of 3: 0.204 usec per loop
>
> C:\code\optichrome\74663>python -mtimeit -s"a=1;b=2;c=3;d=4;e=5;f=6;g=7;h=8" "a=e;b=f;c=g;d=h"
> 10000000 loops, best of 3: 0.103 usec per loop
for less than 4 variables the tuple method is faster.
--
Robin Becker
More information about the Python-list
mailing list