Zeit.Zeit vs. timeit.timeit

Manchmal, wie ich zu der Zeit, wie lange es dauert die Teile von meinem code ausgeführt werden. Ich habe eine Menge von online-sites und gesehen haben, am großen, wesentlichen zwei Möglichkeiten, dies zu tun. Man time.time und die andere ist mit timeit.timeit.

So, ich schrieb ein sehr einfaches Skript, um die beiden zu vergleichen:

from timeit import timeit
from time import time
start = time()
for i in range(100): print('ABC')
print(time()-start, timeit("for i in range(100): print('ABC')", number=1))

Grundsätzlich mal, wie lange es dauert, bis print "ABC" 100 mal in einer for-Schleife. Die Zahl auf der linken Seite die Ergebnisse für time.time und die Zahl auf der rechten Seite ist für timeit.timeit:

# First run
0.0 0.012654680972022981
# Second run
0.031000137329101562 0.012747430190149865
# Another run
0.0 0.011262325239660349
# Another run
0.016000032424926758 0.012740166697164025
# Another run
0.016000032424926758 0.0440628627381413

Wie Sie sehen können, manchmal, Zeit.die Zeit ist schneller und manchmal langsamer. Was ist der bessere Weg (genauer)?

  • timeit ist die bessere Wahl für das timing von Blöcken von code. Es nutzt time.time() (time.clock() für Windows) und deaktiviert das garbage collector. Auch eine Studie ist nicht wirklich genug.
  • timeit verwendet time.perf_counter in Python 3.3+
  • Danke, das wusste ich nicht.
InformationsquelleAutor iCodez | 2013-07-10
Schreibe einen Kommentar