Es scheint etwas inhärenten Overhead in "Zeit" für bestimmte Aktivierungen davon (unerwartet genug).
Try -
import timeit
Times = 30000000
s = """
x=5
if x>=0: pass
"""
t1 = timeit.Timer(stmt=s)
t2 = timeit.Timer(stmt=s)
t3 = timeit.Timer(stmt=s)
print t1.timeit(number=Times)
print t2.timeit(number=Times)
print t3.timeit(number=Times)
print t1.timeit(number=Times)
print t2.timeit(number=Times)
print t3.timeit(number=Times)
print t1.timeit(number=Times)
print t2.timeit(number=Times)
print t3.timeit(number=Times)
print t1.timeit(number=Times)
print t2.timeit(number=Times)
print t3.timeit(number=Times)
Auf meinem Rechner ist der Ausgang (konsequent und unabhängig davon, wie viele Schleifen wir versuchen - so ist es wahrscheinlich mit etwas auf der Maschine geschieht nicht nur zufällig zusammenfallen sonst) -
1.96510925271
1.84014169399
1.84004224001
1.97851123537
1.86845451028
1.83624929984
1.94599509155
1.85690220405
1.8338135154
1.98382475985
1.86861430713
1.86006657271
't1' dauert immer länger. Aber wenn Sie versuchen, die Aufrufe oder Objekterstellung neu zu ordnen, verhalten sich die Dinge anders (und nicht in einem Muster, das ich leicht erklären könnte).
Dies ist keine Antwort auf Ihre Frage, nur eine Beobachtung, dass Messungen auf diese Weise inhärente Ungenauigkeiten haben können.
Sie sollten Zeit> 1000 Berechnungen und dann teilen Sie Ihre Zeit mit der Menge der Berechnungen, um eine genaue Lesung zu erhalten. – RvdK
@PoweRoy ist das nicht, was er mit Nummer = 100000 macht? – djna
Ich muss zugeben, dass ich Python nicht machen kann. Ich rufe an, t.timeit nennt die Ausführung 'Nummer' mal (100000). Nvm der Kommentar. – RvdK