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