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