1. 程式人生 > >緩存命中和性能的關系論證

緩存命中和性能的關系論證

越來越大 round 推導 緩存命中 但是 關於 次數 衡量 不一定

《性能之巔》中關於性能和緩存部分,有兩點在讀到是有一些困惑,做以下思考。

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. 失效率,和命中率的計算思路是有差異的

失效率 = 每秒內,命中失敗的次數

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

總的運行時間,要綜合考慮命中率,以及失效引起的耗時,以及失效率來衡量,不一定命中率高的的系統就比命中率低的系統要性能好。

緩存命中和性能的關系論證