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