Pitón

Módulo timeit de Python

Módulo timeit de Python

La programación no se trata solo de realizar una tarea y obtener un resultado que pretendemos obtener. También se trata de qué tan rápido se ejecuta un programa y se ejecuta para que se logre el resultado deseado. 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 fragmento de código en particular para comprender qué parte de nuestro código está tardando más en ejecutarse. Este es el problema resuelto por Python cronométralo módulo.

Módulo timeit de Python

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

timeit simple ejemplo

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 declaración de ciclo simple y cronometrarla usando el comando que se muestra:

$ python --version
$ python -m timeit '"&".join (str (n) para n en el rango (1000)) '
$ python -m timeit '"&".join ([str (n) para n en el rango (1000)]) '
$ python -m timeit '"&".unirse (mapa (str, rango (1000))) '

Esto es lo que obtenemos 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.

Programando un fragmento de código

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

tiempo de importación
# el código de configuración se ejecuta solo una vez
setup_code = "de la raíz cuadrada de importación matemática"
# fragmento de código principal para comprobar el rendimiento
code_to_measure = "'
def ejemplo ():
mylist = []
para x en el rango (100):
mi lista.añadir (sqrt (x))
'"
# declaración timeit
imprimir (timeit.timeit (configuración = código_configuración,
stmt = code_to_measure,
número = 10000))

Veamos el resultado de este comando:

Sincronizando un bucle

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

Mida el tiempo para el código de varias líneas de CLI

También podemos medir el tiempo para el código que abarca varias líneas en la CLI de Python. Veamos un programa de muestra para ver esto:

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

Esto es lo que obtenemos con este comando:

Cronometraje de código de varias líneas en CLI

Generalmente comparando dos bloques de código

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

tiempo de importación
start = timeit.temporizador_predeterminado ()
funcOne ()
imprimir (timeit.temporizador_predeterminado () - inicio)
start = timeit.temporizador_predeterminado ()
funcTwo ()
imprimir (timeit.temporizador_predeterminado () - inicio)

Al usar la función default_timer (), comenzamos los tiempos una y otra vez para encontrar una diferencia para el mismo cuando se inició por última vez. Esto solo se puede usar cuando tiene un buen estilo modular de escritura de código, de modo que cada pieza 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 de tiempo y trabajar sobre él si el código es demasiado lento.

Emule los clics del mouse colocando el mouse con Clickless Mouse en Windows 10
El uso excesivo de un mouse o teclado en una postura incorrecta puede provocar muchos problemas de salud, como tensión, síndrome del túnel carpiano y ...
Agregue gestos del mouse a Windows 10 con estas herramientas gratuitas
En los últimos años, las computadoras y los sistemas operativos han evolucionado enormemente. Hubo un momento en que los usuarios tenían que usar coma...
Controle y administre el movimiento del mouse entre múltiples monitores en Windows 10
Administrador de mouse de doble pantalla le permite controlar y configurar el movimiento del mouse entre varios monitores, al ralentizar sus movimient...