fps_metrics: don't erase elements until after 10min uptime

pull/1216/head
flightlessmango 5 months ago
parent d4a66ccf7e
commit 3cee6f15de

@ -106,17 +106,24 @@ class fpsMetrics {
void update(uint64_t now, double fps){ void update(uint64_t now, double fps){
fps_stats.push_back({now, fps}); fps_stats.push_back({now, fps});
// Calculate the cut-off nanotime (10 minutes ago) uint64_t ten_minute_duration = 600000000000ULL; // 10 minutes in nanoseconds
uint64_t ten_minutes_ns = 600000000000ULL; // 10 minutes in nanoseconds
uint64_t cutoff_time_ns = os_time_get_nano() - ten_minutes_ns; // Check if the system's uptime is less than 10 minutes
if (now >= ten_minute_duration) {
// Removing elements older than 10 minutes uint64_t ten_minutes_ago = now - ten_minute_duration;
fps_stats.erase(std::remove_if(fps_stats.begin(), fps_stats.end(),
[cutoff_time_ns](const std::pair<uint64_t, float>& p) { fps_stats.erase(
return p.first < cutoff_time_ns; std::remove_if(
}), fps_stats.begin(),
fps_stats.end()); fps_stats.end(),
}; [ten_minutes_ago](const std::pair<uint64_t, float>& entry) {
return entry.first < ten_minutes_ago;
}
),
fps_stats.end()
);
}
}
void update_thread(){ void update_thread(){
{ {

Loading…
Cancel
Save