2 Commits

2 changed files with 20 additions and 9 deletions

View File

@@ -26,7 +26,9 @@ func (a *AvgCacheState) Clear() {
a.mu.Lock() a.mu.Lock()
defer a.mu.Unlock() 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. // Add adds a cache state to the average cache state.
@@ -45,16 +47,13 @@ func (a *AvgCacheState) Avg() float64 {
a.mu.Lock() a.mu.Lock()
defer a.mu.Unlock() defer a.mu.Unlock()
var hits, misses int var hits int
for _, cs := range a.avgs { for _, cs := range a.avgs {
switch cs { switch cs {
case cachestate.CacheStateHit: case cachestate.CacheStateHit:
hits++ hits++
case cachestate.CacheStateMiss:
misses++
} }
} }
total := hits + misses
return float64(hits) / float64(total) return float64(hits) / float64(len(a.avgs))
} }

View File

@@ -111,11 +111,23 @@ func (sc *SteamCache) LogStats() {
sc.mu.Lock() sc.mu.Lock()
defer sc.mu.Unlock() defer sc.mu.Unlock()
if sc.dirty { if sc.dirty {
logger.Logger.Info().
Str("size", units.HumanSize(float64(sc.memory.Size()))).
Str("capacity", units.HumanSize(float64(sc.memory.Capacity()))).
Str("files", fmt.Sprintf("%d", len(sc.memory.StatAll()))).
Msg("memory")
logger.Logger.Info().
Str("size", units.HumanSize(float64(sc.disk.Size()))).
Str("capacity", units.HumanSize(float64(sc.disk.Capacity()))).
Str("files", fmt.Sprintf("%d", len(sc.disk.StatAll()))).
Msg("disk")
logger.Logger.Info(). logger.Logger.Info().
Str("memory", fmt.Sprintf("%s/%s", units.HumanSize(float64(sc.memory.Size())), units.HumanSize(float64(sc.memory.Capacity())))).Int("memory-files", len(sc.memory.StatAll())).
Str("disk", fmt.Sprintf("%s/%s", units.HumanSize(float64(sc.disk.Size())), units.HumanSize(float64(sc.disk.Capacity())))).Int("disk-files", len(sc.disk.StatAll())).
Str("hitrate", fmt.Sprintf("%.2f%%", sc.hits.Avg()*100)). Str("hitrate", fmt.Sprintf("%.2f%%", sc.hits.Avg()*100)).
Msg("stats") Msg("cache")
sc.dirty = false sc.dirty = false
} }
} }