28#ifndef SLEIPNIR_DISABLE_DIAGNOSTICS
29 m_current_solve_start_time = std::chrono::steady_clock::now();
38#ifndef SLEIPNIR_DISABLE_DIAGNOSTICS
39 m_current_solve_stop_time = std::chrono::steady_clock::now();
40 m_current_solve_duration =
41 m_current_solve_stop_time - m_current_solve_start_time;
42 m_total_solve_duration += m_current_solve_duration;
45 m_average_solve_duration =
46 (m_num_solves - 1.0) / m_num_solves * m_average_solve_duration +
47 1.0 / m_num_solves * m_current_solve_duration;
56 std::string_view
name()
const {
return m_name; }
71 return m_current_solve_duration;
80 return m_average_solve_duration;
89 return m_total_solve_duration;
96 std::chrono::steady_clock::time_point m_current_solve_start_time;
97 std::chrono::steady_clock::time_point m_current_solve_stop_time;
98 std::chrono::duration<double> m_current_solve_duration{0.0};
99 std::chrono::duration<double> m_total_solve_duration{0.0};
101 int m_num_solves = 0;
102 std::chrono::duration<double> m_average_solve_duration{0.0};
Definition solve_profiler.hpp:15
const std::chrono::duration< double > & average_duration() const
Definition solve_profiler.hpp:79
const std::chrono::duration< double > & current_duration() const
Definition solve_profiler.hpp:70
SolveProfiler(std::string_view name)
Definition solve_profiler.hpp:22
const std::chrono::duration< double > & total_duration() const
Definition solve_profiler.hpp:88
std::string_view name() const
Definition solve_profiler.hpp:56
void start()
Definition solve_profiler.hpp:27
int num_solves() const
Definition solve_profiler.hpp:63
void stop()
Definition solve_profiler.hpp:37