getPerformanceStats method

Map<String, PerformanceStats> getPerformanceStats()

Implementation

Map<String, PerformanceStats> getPerformanceStats() {
  final stats = <String, PerformanceStats>{};

  for (final entry in _queryMetrics.entries) {
    final queries = entry.value;
    if (queries.isEmpty) continue;

    final totalTime = queries.fold<Duration>(
      Duration.zero,
      (sum, metric) => sum + metric.executionTime,
    );

    final peakTime = queries
        .map((m) => m.executionTime)
        .reduce((max, time) => time > max ? time : max);

    final slowCount = queries
        .where((m) => m.executionTime > slowQueryThreshold)
        .length;

    stats[entry.key] = PerformanceStats(
      averageQueryTime: totalTime ~/ queries.length,
      totalQueries: queries.length,
      slowQueries: slowCount,
      peakExecutionTime: peakTime,
    );
  }

  return stats;
}