¿Qué significa memorización?

La memorización, que es similar a la memorización pero específica de las computadoras, es un método para optimizar la velocidad de un programa aumentando la cantidad de espacio que utiliza. Lo que esta técnica implica directamente es que se construye un programa para recordar los cálculos de una función y el resultado se almacena en una caché. La próxima vez que se llame a la función, el programa puede recuperar el cálculo de la caché en lugar de volver a realizar el mismo cálculo. A diferencia de la reducción de fuerza, que acelera la máquina en función de una compensación de velocidad y espacio similar, la memorización es portátil y se puede utilizar en muchas máquinas.

Es posible que los usuarios no lo vean, pero los programas hacen cálculos todo el tiempo. Cuando alguien hace clic en un botón de un programa o utiliza una función inherente, se requiere un cálculo para que funcione. A menudo, el usuario utilizará la misma función varias veces sin ningún cambio. Sin la memorización en su lugar, aunque el programa acaba de realizar un cálculo, tendría que volver a hacerlo. Esto hace que la velocidad del programa sea más lenta que si almacenara el resultado.

El resultado de un cálculo se almacena en un área de memoria caché. Con la memorización, cuando el usuario realiza la misma entrada o una similar, el programa extraerá de la memoria caché en lugar de realizar el cálculo para obtener la respuesta. Al hacer esto, el programa ahorra tiempo y se optimiza y acelera. La entrada puede ser similar y no exactamente la misma, por lo que algunos cálculos pueden no ser del todo precisos, pero la inexactitud suele ser muy leve y es poco probable que cause errores.

La técnica de memorización esencialmente realiza una compensación. Todos los programas se crean con limitaciones de tiempo y tamaño. Aquí, se sacrifica el tamaño para que la velocidad pueda aumentar. Los resultados se almacenan en la caché, por lo que se necesita más memoria para el programa. La cantidad de memoria sacrificada es muy pequeña, porque una memoria caché está limitada en la cantidad de resultados que puede almacenar, pero aún así aumenta el costo de espacio.

Otra técnica de optimización de compensación similar, pero no tan confiable, es la reducción de la fuerza. La reducción de la fuerza no reduce la fuerza del programa sino la fuerza del cálculo al dividirlo en funciones más débiles y menos costosas de memoria. Por ejemplo, la multiplicación requiere una mayor cantidad de tiempo para procesar que la adición, por lo que la fórmula se cambiará para permitir el proceso que requiere menos tiempo. Esta técnica puede acelerar los procesos, pero es posible que los ahorros no se vean en todas las máquinas y solo ahorra tiempo de compilación.