保存计算结果(“memoization”)可以加快用同样参数重复调用函数的计算速度,代价是使用更多的内存.
从函数定义开始
这是一个返回整数的朝鲜语名称的函数:
使用相同参数重复调用函数的情况下,每次调用所需时间大致相同:
用函数记住以前的计算结果
用下面的习惯用法使函数记住以前计算所得的值(“记住” 函数):
对 integerInKorean 函数应用该方法:
使用特定参数对 memoized 函数的第一次调用与 unmemoized 函数的时间大致相同:
相同参数的后续调用要快得多,因为该函数只是给出以前的计算结果而不是从头开始计算. 在这种情况下,该函数的执行速度要快大约 200 倍:
查看一组记住的值
用更多的值调用 integerInKorean:
用 ?(Information) 查看记住的值:
删除记住的值
删除记住的值以及函数定义:
该符号不再有与之关联的任何定义,并且已回收其使用的内存:
技术要点
在更改记忆函数的定义之前,应首先 Clear 该函数以删除记住的值,它们可能与新定义不兼容
Memoization 通常用于加快递归函数的计算速度.