getStats method
Get cache statistics
Implementation
CacheStats getStats() {
DateTime? oldestTimestamp;
DateTime? newestTimestamp;
int totalAccessCount = 0;
for (final entry in _cache.values) {
if (oldestTimestamp == null || entry.timestamp.isBefore(oldestTimestamp)) {
oldestTimestamp = entry.timestamp;
}
if (newestTimestamp == null || entry.timestamp.isAfter(newestTimestamp)) {
newestTimestamp = entry.timestamp;
}
totalAccessCount += entry.accessCount;
}
return CacheStats(
size: _cache.length,
maxSize: maxSize,
oldestEntryAge: oldestTimestamp == null ? null : DateTime.now().difference(oldestTimestamp),
newestEntryAge: newestTimestamp == null ? null : DateTime.now().difference(newestTimestamp),
hitRate: hitRate,
hits: _hits,
misses: _misses,
evictions: _evictions,
averageAccessCount: _cache.isEmpty ? 0 : totalAccessCount / _cache.length,
);
}