Módulo python timeit

Módulo python timeit

La programación no se trata solo de realizar una tarea y obtener una salida que pretendemos obtener. También se trata de qué tan rápido se ejecuta y ejecuta un programa para que se logre la salida deseada. Con la mayoría de los lenguajes de programación, no es fácil comparar qué tan rápido se ha ejecutado el programa y nunca es fácil cronometrar un código particular para comprender qué parte de nuestro código está tomando más tiempo para ejecutar. Este es el problema que resuelve el Python cronométralo módulo.

Módulo python timeit

Pitón cronométralo El módulo nos permite cronometrar el tiempo de ejecución de un código sin tener en cuenta los procesos de fondo que se ejecutan para hacer un código ejecutable. Si necesita mediciones ligeramente precisas de cómo está funcionando su código cronométralo es el módulo para ir.

Timeit Ejemplo simple

Comenzaremos usando el módulo TimeIT directamente desde el símbolo del sistema. El módulo TimeIT se puede usar directamente desde la CLI, donde podemos ingresar una instrucción de bucle simple y tiempo utilizando el comando mostrado:

$ Python -Versión
$ python -m timeit '"&".unirse (str (n) para n en rango (1000)) '
$ python -m timeit '"&".unir ([str (n) para n en rango (1000)]) '
$ python -m timeit '"&".unir (mapa (str, rango (1000))) '

Esto es lo que recuperamos con este comando:

Tiempo de ejecución de CLI usando TimeIT

En una de las secciones posteriores, aprenderemos cómo podemos administrar el número de bucles realizados para encontrar el número óptimo para la ejecución de una expresión dada.

Cronometrar un código

Si tiene un script básico de Python para el que desea medir el tiempo, el módulo TimeIT es el camino a seguir:

Timeit de importación
# El código de configuración se ejecuta solo una vez
configurar_code = "de matemáticas import sqrt"
# Fragmento del código principal para la verificación de rendimiento
code_to_measure = "'
Ejemplo de def ()::
myList = []
para x en rango (100):
mi lista.Añadir (SQRT (x))
"
# Declaración de TimeIT
Imprimir (Timeit.TIMEIT (SETUP = SETUP_CODE,
stmt = code_to_measure,
número = 10000))

Veamos la salida para este comando:

Cronometrar un bucle

En este código, también vimos cómo podemos controlar el número de repetitivos que realizará el módulo TimeIT para encontrar el mejor momento de ejecución para el programa.

Medir el tiempo para el código múltiple de CLI

También podemos medir el tiempo para el código que se extiende a través de múltiples líneas en el Python CLI. Veamos un programa de muestra para ver esto:

$ python -m timeit -s \
> "Linuxhint = " \
> "Para n en rango (1000):" \
> "Linuxhint [str (n)] = n"

Esto es lo que recuperamos con este comando:

Código de múltiples líneas de tiempo en CLI

Generalmente comparando dos bloques de código

Si no desea entrar en una molestia de usar CLI y solo quiere comparar dos programas de Python para saber cuál se ejecuta más rápido, hay una manera bastante simple de lograr esto:

Timeit de importación
Inicio = Timeit.default_timer ()
Funcone ()
Imprimir (Timeit.default_timer () - inicio)
Inicio = Timeit.default_timer ()
functwo ()
Imprimir (Timeit.default_timer () - inicio)

Al usar la función default_timer (), comenzamos los tiempos una y otra vez para encontrar una diferencia para la misma cuando se inició por última vez. Esto solo se puede usar cuando tiene un buen estilo modular de código de escritura para que cada presentación de código se pueda medir por separado.

Conclusión

En esta lección, estudiamos cómo podemos cronometrar nuestro código en Python y ver su complejidad y eficiencia del tiempo y trabajar sobre él si el código es demasiado lento.