Question about timeit

Stefan Behnel stefan_ml at behnel.de
Fri Jul 22 08:37:11 CEST 2011


Frank Millman, 22.07.2011 08:06:
> I mentioned in a recent post that I noticed an inconsistency in timeit, and
> then reported that I must have made a mistake.
>
> I have now identified my problem, but I don't understand it.
>
> C:\Python32\Lib>timeit.py "int(float('165.0'))"
> 100000 loops, best of 3: 3.52 usec per loop
>
> C:\Python32\Lib>timeit.py "int(float('165.0'))"
> 100000 loops, best of 3: 3.51 usec per loop
>
> C:\Python32\Lib>timeit.py 'int(float("165.0"))'
> 10000000 loops, best of 3: 0.0888 usec per loop
>
> C:\Python32\Lib>timeit.py 'int(float("165.0"))'
> 10000000 loops, best of 3: 0.0887 usec per loop
>
> I ran them both twice just to be sure.
>
> The first two use double-quote marks to surround the statement, and
> single-quote marks to surround the literal inside the statement.
>
> The second two swap the quote marks around.
>
> Can someone explain the difference?
>
> I am using python 3.2 on Windows Server 2003.

As expected, I can't reproduce this (on Linux). Maybe your processor 
switched from power save mode to performance mode right after running the 
test a second time? Or maybe you need a better console application that 
handles quotes in a more obvious way?

Note that it's common to run timeit like this: "python -m timeit".

Stefan




More information about the Python-list mailing list