PerformanceTracker: Add ownership of m_log_name.

This commit is contained in:
Sam Belliveau 2022-12-30 14:56:08 -05:00 committed by Admiral H. Curtiss
parent bc46089ab0
commit 588a72a4fc
No known key found for this signature in database
GPG Key ID: F051B4C4044F33FB
3 changed files with 11 additions and 8 deletions

View File

@ -34,7 +34,7 @@ public:
private:
PerformanceTracker m_fps_counter{"render_times.txt"};
PerformanceTracker m_vps_counter{"vblank_times.txt"};
PerformanceTracker m_speed_counter{nullptr, 500000};
PerformanceTracker m_speed_counter{std::nullopt, 500000};
};
extern PerformanceMetrics g_perf_metrics;

View File

@ -18,7 +18,7 @@
static constexpr double SAMPLE_RC_RATIO = 0.25;
PerformanceTracker::PerformanceTracker(const char* log_name,
PerformanceTracker::PerformanceTracker(const std::optional<std::string> log_name,
const std::optional<s64> sample_window_us)
: m_on_state_changed_handle{Core::AddOnStateChangedCallback([this](Core::State state) {
if (state == Core::State::Paused)
@ -86,8 +86,7 @@ void PerformanceTracker::Count()
m_dt_std = std::nullopt;
if (m_log_name && g_ActiveConfig.bLogRenderTimeToFile)
LogRenderTimeToFile(diff);
LogRenderTimeToFile(diff);
}
DT PerformanceTracker::GetSampleWindow() const
@ -230,9 +229,13 @@ bool PerformanceTracker::QueueEmpty() const
void PerformanceTracker::LogRenderTimeToFile(DT val)
{
if (!m_log_name || !g_ActiveConfig.bLogRenderTimeToFile)
return;
if (!m_bench_file.is_open())
{
File::OpenFStream(m_bench_file, File::GetUserPath(D_LOGS_IDX) + m_log_name, std::ios_base::out);
File::OpenFStream(m_bench_file, File::GetUserPath(D_LOGS_IDX) + *m_log_name,
std::ios_base::out);
}
m_bench_file << std::fixed << std::setprecision(8) << DT_ms(val).count() << std::endl;

View File

@ -34,8 +34,8 @@ private:
}
public:
PerformanceTracker(const char* log_name = nullptr,
const std::optional<s64> sample_window_us = {});
PerformanceTracker(const std::optional<std::string> log_name = std::nullopt,
const std::optional<s64> sample_window_us = std::nullopt);
~PerformanceTracker();
PerformanceTracker(const PerformanceTracker&) = delete;
@ -77,7 +77,7 @@ private: // Functions for managing dt queue
int m_on_state_changed_handle;
// Name of log file and file stream
const char* m_log_name;
std::optional<std::string> m_log_name;
std::ofstream m_bench_file;
// Last time Count() was called