¿Cómo medir el tiempo transcurrido en Python?

En Python tenemos tres módulos que nos ayudan a encontrar el tiempo de ejecución de un programa. Exploraremos cada uno de estos en este artículo y también algunas de sus funciones que podrían ayudarnos a ejecutar los programas. Los módulos que usaríamos son timeit , time y Datetime . Vamos a cubrir el programa de Python para medir el tiempo transcurrido en Python.

Método 1: Uso del módulo Timeit

El módulo timeit de Python se usa a menudo para medir el tiempo de ejecución de pequeños fragmentos de código. También podemos usar la función timeit() que ejecuta una función anónima con varias ejecuciones. Desactiva temporalmente la recolección de basura (el proceso de recolectar variables no deseadas cuyo uso ha terminado y las borra marcándolas como valores basura para liberar la memoria) durante el cálculo del tiempo de ejecución.  

Ejemplo 1: Analiza cómo usar el módulo timeit

En el primer ejemplo, analizaríamos cómo usar el módulo timeit y usarlo para encontrar el tiempo de ejecución de una expresión lambda. El código comienza con la importación del módulo de tiempo y luego usamos el. El módulo timeit() para encontrar el tiempo requerido para ejecutar la función. Finalmente, imprimimos el resultado en la pantalla.

Python3

# importing the module
import timeit
 
 
# using the timeit method and lambda
# expression to get the execution time of
# the function.
t = timeit.timeit(lambda: "print('Hello World!')")
 
# printing the execution time
print(t)

Producción:

0.0777151

Ejemplo 2: Cómo medir el tiempo transcurrido usando timeit.timeit()

Ahora revisaríamos cómo usar la función timeit.timeit( ) para obtener el tiempo de ejecución de una función. La función comienza con la importación de los módulos, luego creamos una función de muestra cuyo tiempo de ejecución deseamos calcular. Luego usamos la función timeit.timeit() y llamamos a la función dentro de la función como parámetro, y el siguiente parámetro es el número que define cuántas veces ejecutamos esta función. Luego imprimimos el tiempo transcurrido o de ejecución en la siguiente línea.

Python3

# importing the module
import timeit
 
# sample function that returns square
# of the value passed
def print_square(x):
    return (x**2)
 
# using the timeit method and lambda
# expression to get the execution time of
# the function, number defines how many
# times we execute this function
t = timeit.timeit(lambda: print_square(3), number=10)
 
# printing the execution time
print(t)

Producción:

5.299999999999749e-06

Ejemplo 3: Cómo medir el tiempo transcurrido usando timeit.repeat

Ahora, prácticamente para estimar el tiempo de ejecución de un programa, generalmente no usamos el valor obtenido una vez como el último valor correcto, porque la ejecución de un programa puede depender del sistema operativo y la disponibilidad del hardware en un instante de tiempo particular. Por lo general, tomamos múltiples valores de tiempo de ejecución y, en general, el promedio calculado nos brinda la mejor respuesta posible. Para esto, usaríamos el método timeit.repeat() en lugar de timeit.timeit() que toma un parámetro repetido y le ahorra la molestia de crear un bucle y almacenar los valores en la array.

Python3

# importing the module
import timeit
 
 
# sample function that returns square
# of the value passed
def print_square(x):
    return (x**2)
 
# using the repeat method and lambda
# expression to get the execution time of
# the function, number defines how many
# times we execute this function and the
# repeat defines the number of times the
# time calculation needs to be done.
t = timeit.repeat(lambda: print_square(3), number=10, repeat=5)
 
# printing the execution time
print(t)

Producción:

[5.800000000000249e-06, 3.299999999997749e-06, 3.2000000000018125e-06, 3.1999999999948736e-06, 

3.4000000000006247e-06]

Ejemplo 4: Cómo medir el tiempo transcurrido usando timeit.default_timer()

Además, podemos usar timeit.default_timer() que básicamente registra la hora en el instante en que se llama al método. Así que llamamos al método justo antes y después de las líneas del código para las que queremos calcular el tiempo de ejecución y luego, básicamente, la diferencia entre los dos tiempos nos da el resultado. Entonces, para encontrar la hora, registramos las horas usando el método timeit.defaultTimer(), y luego imprimimos la diferencia entre las dos horas en la última línea. 

Python3

# importing the module
import timeit
 
 
# sample function that returns
# square of the value passed
def print_square(x):
    return (x**2)
 
# records the time at this instant
# of the program
start = timeit.default_timer()
 
# calls the function
print_square(3)
 
# records the time at this instant
# of the program
end = timeit.default_timer()
 
# printing the execution time by subtracting
# the time before the function from
# the time after the function
print(end-start)

Producción:

2.299999999996749e-06

Método 2: Uso del módulo de tiempo

Podemos usar el método time.perf_counter() de la misma manera que el método timeit.default_timer() discutido anteriormente. Puede usar el reloj de mayor resolución posible y le brinda el resultado más preciso. De hecho, timeit.default_timer() también usa time.perf_counter() como base. Esto también registra el tiempo antes y después de las líneas de código requeridas cuya ejecución o tiempo transcurrido debe calcularse. Luego restamos el tiempo registrado antes del comienzo de las líneas del tiempo registrado después de las líneas del código. 

Ejemplo 1: Cómo medir el tiempo transcurrido usando time.perf_counter()

Python3

# importing the module
import time
 
# sample function that returns square
# of the value passed
def print_square(x):
    return (x**2)
 
# records the time at this instant of the
# program
start = time.perf_counter()
 
# calls the function
print_square(3)
 
# records the time at this instant of the
# program
end = time.perf_counter()
 
# printing the execution time by subtracting
# the time before the function from
# the time after the function
print(end-start)

Producción:

2.299999999996749e-06

Ejemplo 2: Cómo medir el tiempo transcurrido usando time.time_ns()

Para medir el tiempo transcurrido o el tiempo de ejecución de un bloque de código en nanosegundos, podemos usar la función time.time_ns(). Esto sigue la misma sintaxis que la función time.time_ns(), como registrar el tiempo antes y después de las líneas del código y luego restar los valores y luego imprimirlos en la pantalla, pero registra en nanosegundos en lugar de segundos.

Python3

# importing the module
import time
 
# sample function that returns square
# of the value passed
def print_square(x):
    return (x**2)
 
# records the time in nanoseceonds at
# this instant of the program
start = time.time_ns()
 
# calls the function
print_square(3)
 
# records the time in nanoseceonds at this
# instant of the program
end = time.time_ns()
 
# printing the execution time by subtracting
# the time before the function from
# the time after the function
print(end-start)

Producción:

0

Nota: Dado que mi computadora tiene un procesador y una memoria RAM bastante buenos, en mi caso tomó 0 nanosegundos. Pero depende de su sistema cuánto tiempo le tome ejecutar el código de función.

Ejemplo 3: Cómo medir el tiempo transcurrido usando time.process_time()

Para medir el tiempo transcurrido o el tiempo de ejecución, podemos usar la función time.process_time(). Esto sigue la misma sintaxis que la función time.process_time()), como registrar el tiempo antes y después de las líneas del código y luego restar los valores y luego imprimirlos en la pantalla.

Python3

# importing the module
import time
 
# sample function that returns square
# of the value passed
def print_square(x):
    return (x**76567)
 
# records the time in nanoseceonds at
# this instant of the program
start = time.process_time()
 
# calls the function
print_square(125)
 
# records the time in nanoseceonds at this
# instant of the program
end = time.process_time()
 
# printing the execution time by subtracting
# the time before the function from
# the time after the function
print(end-start)
0.015625

Método 3: usar el módulo de fecha y hora

El módulo de fecha y hora también se puede usar para encontrar el tiempo transcurrido o gastado en un bloque de código, siempre que no esté buscando una alta precisión. datetime.now() también funciona de lamisma manera que timeit.default_timer() o time.perf_counter() pero carece de la misma precisión que esos. Devuelve el resultado en formato HH:MM:SS. Esta función generalmente se usa para obtener la hora actual y no es un caso de uso preferido para calcular el tiempo de ejecución. Sin embargo, estos pueden ser programas que tardan bastante tiempo en ejecutarse, como entrenar modelos ML/AI, web scraping de sitios web grandes, etc.   

Ejemplo: Cómo medir el tiempo transcurrido usando datetime.datetime.now()

Python3

# importing the module
from datetime import datetime
 
# sample function that returns square
# of the value passed
def print_square(x):
    return (x**2)
 
# records the time at this instant of
# the program in HH:MM:SS format
start = datetime.now()
 
# calls the function
print_square(3)
 
# records the time at this instant of the
# program in HH:MM:SS format
end = datetime.now()
 
# printing the execution time by subtracting
# the time before the function from
# the time after the function
print(end-start)

Producción:

0:00:00

Publicación traducida automáticamente

Artículo escrito por saikatsahana91 y traducido por Barcelona Geeks. The original can be accessed here. Licence: CCBY-SA

Deja una respuesta

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *