timeit.timeit and timeit.repeat give different answers
jdc at uwo.ca
Sun Jul 11 20:30:29 CEST 2004
The test below is done with Python 2.4a1 compiled from source, but
the same thing happens with Debian's python2.3_2.3.4-2.
Python 2.4a1 (#1, Jul 11 2004, 12:20:32)
[GCC 3.3.4 (Debian)] on linux2
Type "help", "copyright", "credits" or "license" for more information.
>>> import timeit
>>> import time
>>> print t.timeit()
>>> print t.repeat(1)
The results are consistent if repeated, i.e. timeit always produces
about 0.056 and repeat always produces about 0.043.
It doesn't help to do:
for i in range(10):
The problem happens on both machines I've tested it on. One is a
desktop. No other jobs running.
With Python 2.3, the results are affected by the setting of the
PYTHONPATH environment variable. With it unset or set to an empty
directory /tmp/foo I get results like above. With it set to an empty
directory /tmp/python, I get results that agree with each other.
But with Python 2.4, all three settings give results that disagree.
If I use the ipython shell, things are even worse: the results
disagree by a factor of almost 2!
I've read timeit.py and can't see how this might happen.
More information about the Python-list