fix: improve cache state clearing and average calculation logic

This commit is contained in:
2025-01-22 18:23:47 -06:00
parent d11c294010
commit 53847db0e9

View File

@@ -26,7 +26,9 @@ func (a *AvgCacheState) Clear() {
a.mu.Lock()
defer a.mu.Unlock()
a.avgs = make([]cachestate.CacheState, a.size) // zeroed
for i := 0; i < len(a.avgs); i++ {
a.avgs[i] = cachestate.CacheStateMiss
}
}
// Add adds a cache state to the average cache state.
@@ -45,16 +47,13 @@ func (a *AvgCacheState) Avg() float64 {
a.mu.Lock()
defer a.mu.Unlock()
var hits, misses int
var hits int
for _, cs := range a.avgs {
switch cs {
case cachestate.CacheStateHit:
hits++
case cachestate.CacheStateMiss:
misses++
}
}
total := hits + misses
return float64(hits) / float64(total)
return float64(hits) / float64(len(a.avgs))
}