Memoization(或称备忘录化)是一种来自计算机编程的技术,用于优化计算机程序。计算机程序调用函数。每个函数都会计算出它要返回的结果。记忆化很简单:在从函数调用中返回数值之前,它被存储在一个表(或关联数组)中。像缓存一样,这个数组只能存储有限数量的结果。然后可以改变函数,使其尝试在其查找表中查找输入的值。这种查找比再次进行计算的成本要低得多。也像一个缓存:数据表将被定期清理,例如,在一定时间内没有被查询到的值将被删除。
尽管与缓冲有关,但记忆化指的是这种优化的一种特殊情况,它与缓冲或页面替换等缓冲形式有所区别。在一些逻辑编程语言中,记忆化也被称为Tabling;另见查找表。