保存计算结果(memoization)可以加快用同样参数重复调用函数的计算速度,代价是使用更多的内存.

从函数定义开始

这是一个返回整数的朝鲜语名称的函数:

使用相同参数重复调用函数的情况下,每次调用所需时间大致相同:

用函数记住以前的计算结果

用下面的习惯用法使函数记住以前计算所得的值(记住 函数):

integerInKorean 函数应用该方法:

使用特定参数对 memoized 函数的第一次调用与 unmemoized 函数的时间大致相同:

相同参数的后续调用要快得多,因为该函数只是给出以前的计算结果而不是从头开始计算. 在这种情况下,该函数的执行速度要快大约 200 倍:

查看一组记住的值

用更多的值调用 integerInKorean

用 ?(Information) 查看记住的值:

删除记住的值

删除记住的值以及函数定义:

该符号不再有与之关联的任何定义,并且已回收其使用的内存:

技术要点
在更改记忆函数的定义之前,应首先 Clear 该函数以删除记住的值,它们可能与新定义不兼容
Memoization 通常用于加快递归函数的计算速度.