预缓存和预取之间有区别吗?

Jas*_*ado 5 performance caching

似乎他们是同一想法的两个名字-有什么区别吗?

Mig*_*ing 3

免责声明:我不知道有任何文献专门区分(或区分)预缓存和预取。

缓存是一个比获取更难的问题。缓存涉及失效(知道缓存条目何时不再有效),可能涉及其他方面(例如分布式缓存),并且对应用程序可能是透明的,也可能不是透明的。

获取与获取您需要的东西有关。因此,恕我直言,预取(这个词)应该在以下情况下使用:

  1. 您可能在不久的将来需要这些数据
  2. 数据可能会被访问​​一次
  3. 使用后可以丢弃数据

例如,考虑微处理器上分支预测算法的指令预取。

缓存与在更快的介质(例如 L2 缓存或 memcached 服务器)上拥有实际数据的副本有关。因此,预缓存与预取不同,因为其用法不同:缓存通常涉及多次读取和一些失效机制,因此预缓存机制将用于例如用频繁访问的项目填充某些缓存。