AD

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

Ver cursos de Julia en Udemy

Enlace de afiliado. No te cuesta nada extra.

🟣Lecciones de Julia
Lección 38 / 68

Acelerar cálculos con memoización

En esta lección guardarás resultados ya calculados para no repetir el trabajo.

Se lleva un Dict donde la clave es la entrada y el valor el resultado. haskey comprueba si ya está.

El código de ejemplo llama dos veces con el mismo valor, y los mensajes dejan ver cuándo calcula y cuándo recuerda.

Fíjate en Dict{Int, Int}() con los tipos declarados. Un Dict() sin tipos sería Dict{Any, Any} y bastante más lento, porque el compilador no puede especializar. Declararlos es la costumbre en Julia siempre que se conozcan.

Dos cosas que vigilar. La memoria: una caché que nunca se vacía crece sin límite. Y la corrección: si el resultado depende de algo que puede cambiar, el valor guardado se queda obsoleto. Solo es seguro memoizar funciones que dan siempre el mismo resultado para la misma entrada.

Conviene saber además que aquí la caché es una variable global, lo que en Julia tiene un coste de rendimiento. En código real se pasaría como argumento o se envolvería en una closure, y para no escribirlo a mano existe el paquete Memoize.jl.

📖 Código de referencia
✍️ Tu código
Escribe tu código y pulsa «Ejecutar»

🧪 Este sitio no puede compilar ni ejecutar Julia directamente, así que comprueba al instante si lo que escribiste coincide con el código de referencia (la corrección ocurre por completo en tu navegador; no se envía nada a ningún servidor).

🔗 El mismo tema en otros lenguajes

Mira cómo se escribe lo mismo en otro lenguaje.

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