Espacio publicitario (banner)
AD

¿Ya dominas lo básico? Un curso estructurado de Python es la vía rápida para dar el salto.

Ver cursos de Python en Udemy

Enlace de afiliado. No te cuesta nada extra.

🐍Lecciones de Python
Lección 39 / 69

Acelerar cálculos con memoización (caché)

En esta lección verás la memoización (caché), una técnica para acelerar de forma eficiente cálculos costosos. Está pensada para quien busca «memoización en Python» o «cómo usar lru_cache en Python».

La memoización es una técnica en la que guardas el resultado de un cálculo en una «caja» la primera vez y lo recuperas de ahí en lugar de volver a calcularlo cuando vuelve a aparecer la misma entrada. Piénsalo como dar siempre la misma respuesta memorizada cuando te hacen la misma pregunta. Como evitas repetir un cálculo lento y costoso, puede mejorar enormemente el tiempo de respuesta de una aplicación.

El código de ejemplo usa un diccionario llamado cache como caja, comprobando «¿ya se ha calculado esto?» con el operador in dentro de la función slow_square. Si ya está en caché, el valor se devuelve al instante; si no, se calcula el resultado y se guarda antes de devolverlo.

Un error habitual al empezar es decidir qué usar como clave de la caché. Para una función con varios argumentos necesitas una estrategia, como usar una tupla con todos ellos combinados. Python tiene además un decorador muy práctico, functools.lru_cache, que se encarga de la memoización automáticamente y que a menudo se usa en su lugar.

El beneficio es mayor cuanto más pesado es el cálculo numérico, y puede producir una mejora realmente perceptible, sobre todo en cálculos recursivos o al guardar en caché el resultado de llamadas a una API. Es una técnica que se usa habitualmente para mejorar el rendimiento en el mundo real.

Python
SALIDA

💡 El motor de Python puede tardar unos segundos en cargarse la primera vez que ejecutas código.

Espacio publicitario (banner)
Espacio publicitario (en el artículo)