最近,我正在阅读“好的部分”,并且正在经历一个名为 memoization 的主题,但我无法理解它。我没有得到的是,在函数执行大量时间的情况下,不会像使用大量数据保存变量那样耗费内存。如果是这种情况,那么它是如何优化的。请注意,我是java脚本的新手,我已经阅读了这个主题。
答案 0 :(得分:1)
Memoization是一种简单的机制,它包含缓存计算值的结果。
如果你了解缓存机制,那么很容易理解memoization。
据我所知,可以对他们的程序进行两种优化:
这完全取决于要求。
答案 1 :(得分:1)
还记得动态编程吗?在计算数字的阶乘时,你会记住阶乘直到n-1,然后将事实(n-1)乘以n。但在某些情况下,问题是不必要的呼叫,这很容易避免。
为了保存这些不必要的电话,我们可以记住它。要保存memoize结果,可以在闭包内使用数组。调用函数时,首先要检查的是它是否已经有答案,如果是,则返回答案,否则重新计算。
答案 2 :(得分:0)