Python

Medir el tiempo de ejecución en Python con pyinstrument

A la hora de optimizar un programa para que se ejecute de forma más rápida una información clave es cuáles son las funciones que más tiempo de procesado consumen. Para centrarnos en mejorar el rendimiento de estas. Por mucho que se mejore el rendimiento de una función que suponga una parte ínfima de la ejecución total, el efecto que se observará en el programa será casi nulo. Pero, mejoras menores en las funciones clave puede suponer un aumento del rendimiento espectacular. Para medir el tiempo de ejecución en Python se puede recurrir a las funciones de time o alguna herramienta de profile. Por ejemplo, pyinstrument.

Instalación de pyinstrument

El método más sencillo para instalar pyinstrument en nuestro entorno de Python es mediante el comando pip, para lo que se debe escribir en la terminal.

pip install pyinstrument

Una vez hecho esto ya podemos usar esta herramienta en nuestro sistema.

Medir el tiempo de ejecución en un script de Python

Supongamos que tenemos un script como el siguiente en el que existen tres funciones y queremos saber en cuál de ellas pasa más tiempo el programa.

from time import sleep

def function_one():
    sleep(0.01)


def function_two():
    sleep(0.09)

    
def function_three():
    sleep(0.03)

    
for _ in range(10):
    function_one()
    function_two()
    function_three()

Ahora que tenemos instalado pyinstrument, si el archivo donde se encuentra el código se llama test.py, solamente es necesario ejecutar el siguiente comando para obtener el siguiente informe con los tiempos de ejecución.

Informe con los tiempos de ejecución que se pude obtener en la terminal con pyinstrument

Un informe en el que se puede ver claramente, incluso con una escala de colores, en las funciones que el programa pasa más tiempo. En este caso se puede ver que dónde más tiempo pasa el programa es en function_two(), por lo que el tiempo de esta se puede ver en rojo. Seguiod de function_three(), en amarillo, y function_one() en verde. Por lo que, la mejor opción es céntranos en mejorar el rendimiento de function_two() antes que las otras dos funciones.

Informe con los tiempos de ejecución que se pude obtener en un Notebook con pyinstrument

Medir el tiempo de ejecución en Jupyter Notebook

En esta ocasión se ha visto los fundamentos de pyinstrument. Una herramienta que puede ser de gran utilidad cuando necesitamos medir el tiempo de ejecución en Python y saber cuanto tiempo pasa el programa en cada función. Aunque es posible hacer esto con las funciones de la librería estándar time, algo que hemos hecho en múltiples ocasiones en para comparar el rendimiento de diferentes librerías, el uso de pyinstrument es más sencillo y los informes más fáciles de interpretar.

Conclusiones

Imagen de Simone Lugli en Pixabay

¿Te ha parecido de utilidad el contenido?

Daniel Rodríguez

Share
Published by
Daniel Rodríguez

Recent Posts

De la Regresión Logística al Scorecard: La Transformación Matemática

En un entrada previa explicamos qué son el WOE y el IV y por qué…

23 horas ago

Analytics Lane lanza la versión 1.1 del laboratorio con nuevas suites de CLV y Scoring

Seguimos evolucionando el laboratorio de Analytics Lane y hoy lanzamos la versión 1.1, disponible en:…

2 días ago

Interés compuesto: la fuerza que multiplica tu dinero (y los errores que la anulan)

“El interés compuesto es la octava maravilla del mundo. El que lo entiende lo gana…

6 días ago

Cómo comparar datos con barras en Matplotlib: agrupadas, apiladas y porcentuales

Tienes los datos de ventas de tres productos en dos años distintos y quieres saber…

1 semana ago

Costes hundidos en ciencia de datos: cuándo mantener un modelo y cuándo migrar

Imagina la situación. Tu equipo lleva tres años con un modelo en producción. No es…

2 semanas ago

WOE e IV: La Base Matemática del Credit Scoring

Cuando un banco evalúa una solicitud de crédito necesita responder a una pregunta aparentemente simple:…

2 semanas ago

This website uses cookies.