getStats method

CacheStats getStats()

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,
  );
}