缓存命中和性能的关系论证

《性能之巅》中关于性能和缓存部分,有两点在读到是有一些困惑,做以下思考。

1. 为什么99%的缓存命中,和98%的缓存命中,两者性能差距,远大于11%和10%的差距

具体的论证仔细思考了一下,可以推导如下:

现做以下变量定义:

k:命中率,[0,1]之间

t:没有命中的处理耗时,[1,max],此处假设命中后的处理时间是1,此处假定命中和不命中的处理速度为固定倍数差异。

A:总的任务量

T:总的开销时间

于是有以下公式:

T = A * k *  1 + A * (1-k)* t

进行推导,就有以下关系:

A/T = 1 / t + (1-t)k

综上,性能可以用A/T来衡量,即:工作总量/总的耗时;

那么很明显,在命中和不命中的速度差异情况下,命中率和耗时呈线性关系,但是和整体的性能呈非线性,斜率会越来越大。

 

2. 失效率,和命中率的计算思路是有差异的

失效率 = 每秒内,命中失败的次数

命中率 = 命中次数 /(命中次数 + 失效次数)

总的运行时间,要综合考虑命中率,以及失效引起的耗时,以及失效率来衡量,不一定命中率高的的系统就比命中率低的系统要性能好。

 

posted @ 2018-11-19 23:39  doctorJ  阅读(913)  评论(1编辑  收藏  举报