diff --git a/src/core/perf_stats.cpp b/src/core/perf_stats.cpp index bfab77abb6..d2c69d1a07 100644 --- a/src/core/perf_stats.cpp +++ b/src/core/perf_stats.cpp @@ -9,8 +9,8 @@ #include #include #include +#include #include -#include #include "common/file_util.h" #include "common/math_util.h" #include "core/perf_stats.h" @@ -34,13 +34,13 @@ PerfStats::~PerfStats() { return; } - std::time_t t = std::time(nullptr); + const std::time_t t = std::time(nullptr); std::ostringstream stream; std::copy(perf_history.begin() + IgnoreFrames, perf_history.begin() + current_index, std::ostream_iterator(stream, "\n")); - std::string path = FileUtil::GetUserPath(FileUtil::UserPath::LogDir); + const std::string& path = FileUtil::GetUserPath(FileUtil::UserPath::LogDir); // %F Date format expanded is "%Y-%m-%d" - std::string filename = + const std::string filename = fmt::format("{}/{:%F-%H-%M}_{:016X}.csv", path, *std::localtime(&t), title_id); FileUtil::IOFile file(filename, "w"); file.WriteString(stream.str()); @@ -75,11 +75,13 @@ void PerfStats::EndGameFrame() { } double PerfStats::GetMeanFrametime() { + std::lock_guard lock{object_mutex}; + if (current_index <= IgnoreFrames) { return 0; } - double sum = std::accumulate(perf_history.begin() + IgnoreFrames, - perf_history.begin() + current_index, 0); + const double sum = std::accumulate(perf_history.begin() + IgnoreFrames, + perf_history.begin() + current_index, 0); return sum / (current_index - IgnoreFrames); } diff --git a/src/core/perf_stats.h b/src/core/perf_stats.h index 2db290c092..d9a64f072d 100644 --- a/src/core/perf_stats.h +++ b/src/core/perf_stats.h @@ -6,6 +6,7 @@ #include #include +#include #include #include "common/common_types.h"