Joh*_*ohn 100 caching terminology memoization
我想知道缓存和memoization之间的实际区别是什么.正如我所看到的,两者都涉及通过存储来避免重复的函数调用来获取数据.
这两者有什么区别?
SLa*_*aks 98
Memoization是一种特定的缓存形式,它涉及根据函数的参数缓存函数的返回值.
缓存是一个更通用的术语; 例如,HTTP缓存是缓存而不是memoization.
维基百科说:
虽然与缓存有关,但是memoization指的是这种优化的特定情况,将其与缓存形式(例如缓冲或页面替换)区分开来.
har*_*rpo 45
正如我所看到的那样,"memoization"是"缓存确定性函数的结果",可以在给定相同功能和输入的情况下随时再现.
"缓存"基本上包括任何输出缓冲策略,无论源值是否在给定时间是可再现的.实际上,缓存还用于指代输入缓冲策略,例如磁盘或内存上的写缓存.所以这是一个更通用的术语.
我认为术语缓存通常在存储IO操作的结果时使用,或者基本上是从外部发送给您的任何数据(文件,网络,数据库查询).术语记忆通常适用于存储您自己计算的结果,例如在动态编程的上下文中.