有没有关于缓存的统一理论? 也就是说,构建缓存和/或针对缓存进行优化的定理和算法的集合?
这个问题故意很宽泛,因为我想要的结果也很广泛。 最大可实现加速比的公式,缓存算法的度量标准等等。 大学级教材可能是理想的选择。
我和学校的一位教授交谈过,他向我指出了在线算法,这似乎是我正在寻找的主题。
缓存算法和页面替换算法之间有很大的重叠。一旦我对这个主题有更多的了解,我可能会编辑维基百科上这些主题的页面,以澄清它们之间的关系。
Number of hits = NumRequests - #CacheMisses
AverageTime = ((NumRequests-#CacheMisses) * TimePerHit + #CacheMisses * TimePerMiss)/NumRequests
如果我们假设NumRequests是无限大的(这是一个极限问题,不要害怕微积分),那么我们可以看到:
AverageTime = Infinity*TimePerHit/Infinity - #CacheMisses*TimePerHit/Infinity + #CacheMisses*TimePerMiss/Infinity
#CacheMisses这两个术语都变为零,但整个方程式的解析结果是:
AverageTime = TimePerHit
虽然这仅适用于请求数量为无限大的情况,但您可以看到使用缓存将轻松加速系统。