Si puede asumir que un golpe de caché es mucho más rápido que un error de caché, encontrará que las horas extraordinarias, incluso si solo tiene fallas de caché, usar un caché seguirá siendo tan rápido o más rápido que no usar un caché.
Véase más abajo para los cálculos:
Number of hits = NumRequests - #CacheMisses
AverageTime = ((NumRequests-#CacheMisses) * TimePerHit + #CacheMisses * TimePerMiss)/NumRequests
Si entonces se supone que NumRequests es infinito (esto es un problema de límite, no temen al cálculo), podemos ver esto:
AverageTime = Infinity*TimePerHit/Infinity - #CacheMisses*TimePerHit/Infinity + #CacheMisses*TimePerMiss/Infinity
Ambos términos con los #CacheMisses llega a cero, pero toda la ecuación, resuelve:
AverageTime = TimePerHit
concede esta es para cuando el número de solicitudes es infinito, pero puede ver cómo esto acelerará fácilmente su sistema al usar un caché.
Su cálculo se ve muy bien. Desafortunadamente, implica la suposición de que el número de errores de caché es constante, lo que parece muy poco probable. El número correcto sería: HitProbability * TimePerHit + (1 - HitProbability) * TimePerMiss –
Sé que las matemáticas son un poco dudosas; esta es una prueba que tuve que aprender para una clase que tomé el otoño pasado y solo traté de recordarla desde allí. Sin embargo, teniendo en cuenta su punto, dado que tengo CacheHits frente a CacheMisses, esta es una razón, ¿no sería esto lo mismo que usar una probabilidad de acierto? – samoz
No del todo. Suponiendo que hay una probabilidad constante distinta de cero de errores de caché, habrá infinitas fallas si se realizan ensayos infinitos. Su fórmula sería correcta si la caché es lo suficientemente grande como para contener todos los datos que alguna vez se solicitarán. Luego hay un límite superior constante al número de fallas. –