Мемоизация (или мемоизация) - это техника из компьютерного программирования для оптимизации компьютерной программы. Компьютерные программы вызывают функции. Каждая функция вычисляет результат, который она возвращает. Мемоизация проста: прежде чем значение будет возвращено в результате вызова функции, оно сохраняется в таблице (или ассоциативном массиве). Подобно кэшу, этот массив может хранить только ограниченное количество результатов. Затем функцию можно изменить таким образом, чтобы она пыталась найти значение входных данных в своей таблице поиска. Такой поиск гораздо менее затратен, чем повторное вычисление. Также как кэш: таблица данных будет периодически очищаться, например, удаляются значения, которые не были просмотрены в течение определенного времени.
Хотя мемоизация связана с кэшированием, она относится к конкретному случаю этой оптимизации, отличаясь от таких форм кэширования, как буферизация или замена страниц. В контексте некоторых языков логического программирования мемоизация также известна как табуляция; см. также lookup table.