36#ifndef SLEIPNIR_DISABLE_DIAGNOSTICS
37 m_current_solve_start_time = std::chrono::steady_clock::now();
46#ifndef SLEIPNIR_DISABLE_DIAGNOSTICS
47 m_current_solve_stop_time = std::chrono::steady_clock::now();
48 m_current_solve_duration =
49 m_current_solve_stop_time - m_current_solve_start_time;
50 m_total_solve_duration += m_current_solve_duration;
53 m_average_solve_duration =
54 (m_num_solves - 1.0) / m_num_solves * m_average_solve_duration +
55 1.0 / m_num_solves * m_current_solve_duration;
72 return m_current_solve_duration;
81 return m_average_solve_duration;
90 return m_total_solve_duration;
94 std::chrono::steady_clock::time_point m_current_solve_start_time;
95 std::chrono::steady_clock::time_point m_current_solve_stop_time;
96 std::chrono::duration<double> m_current_solve_duration{0.0};
97 std::chrono::duration<double> m_total_solve_duration{0.0};
100 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:80
const std::chrono::duration< double > & current_duration() const
Definition solve_profiler.hpp:71
SolveProfiler(std::string_view name)
Definition solve_profiler.hpp:30
const std::chrono::duration< double > & total_duration() const
Definition solve_profiler.hpp:89
std::string name
Name of measurement to show in diagnostics.
Definition solve_profiler.hpp:18
void start()
Definition solve_profiler.hpp:35
int num_solves() const
Definition solve_profiler.hpp:64
void stop()
Definition solve_profiler.hpp:45