Obtener marcas de temporizador en Python


Answers

Lo que necesita es la función time() del módulo de time :

import time
start = time.time()
do_long_code()
print "it took", time.time() - start, "seconds."

Sin embargo, puedes usar el módulo timeit para más opciones.

Question

Solo estoy tratando de sincronizar una parte del código. El pseudocódigo se ve así:

start = get_ticks()
do_long_code()
print "It took " + (get_ticks() - start) + " seconds."

¿Cómo se ve esto en Python?

Más específicamente, ¿cómo obtengo el número de tics desde la medianoche (o, como quiera que Python organice ese tiempo)?




Si tiene muchas declaraciones que desea cronometrar, podría usar algo como esto:

class Ticker:
    def __init__(self):
        self.t = clock()

    def __call__(self):
        dt = clock() - self.t
        self.t = clock()
        return 1000 * dt

Entonces su código podría verse así:

tick = Ticker()
# first command
print('first took {}ms'.format(tick())
# second group of commands
print('second took {}ms'.format(tick())
# third group of commands
print('third took {}ms'.format(tick())

De esta forma no es necesario escribir t = time() antes de cada bloque y 1000 * (time() - t) después de él, mientras se mantiene el control sobre el formateo (aunque también se puede poner fácilmente en Ticket ).

Es una ganancia mínima, pero creo que es bastante conveniente.




El módulo de tiempo en python le da acceso a la función clock (), que devuelve el tiempo en segundos como un punto flotante.

Los diferentes sistemas tendrán una precisión diferente en función de su configuración de reloj interno (tics por segundo), pero en general es al menos menos de 20 milisegundos y, en algunos casos, mejor que algunos microsegundos.

-Adán