time.time vs. timeit.timeit

A veces, me gusta calcular cuánto tiempo tarda en ejecutarse partes de mi código. He revisado muchos sitios en línea y he visto, en general, dos formas principales de hacerlo. Uno usa time.time y el otro usa timeit.timeit .

Entonces, escribí un script muy simple para comparar los dos:

 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)) 

Básicamente, mide el tiempo que tarda en imprimir “ABC” 100 veces en un bucle for. El número de la izquierda es el resultado de time.time y el número de la derecha es de 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 

Como puede ver, a veces, time.time es más rápido ya veces es más lento. ¿Cuál es la mejor manera (más precisa)?

Related of "time.time vs. timeit.timeit"

timeit es más preciso, por tres razones:

  • repite las pruebas muchas veces para eliminar la influencia de otras tareas en su máquina, como el lavado de discos y la progtwigción del sistema operativo.
  • desactiva el recolector de basura para evitar que el proceso desvíe los resultados al progtwigr una ejecución de recolección en un momento inoportuno.
  • elige el temporizador más preciso para su sistema operativo, time.time o time.clock en Python 2 y time.perf_counter() en Python 3. Consulte timeit.default_timer .