《性能之巅》中关于性能和缓存部分,有两点在读到是有一些困惑,做以下思考。
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. 失效率,和命中率的计算思路是有差异的
失效率 = 每秒内,命中失败的次数
命中率 = 命中次数 /(命中次数 + 失效次数)
总的运行时间,要综合考虑命中率,以及失效引起的耗时,以及失效率来衡量,不一定命中率高的的系统就比命中率低的系统要性能好。
原文地址:https://www.cnblogs.com/doctors/p/9986628.html
时间: 2024-10-10 02:25:53