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