20 #ifndef __libpbd_timing_h__
21 #define __libpbd_timing_h__
69 return (m_start_val != 0 && m_last_val != 0);
73 m_start_val = g_get_monotonic_time ();
78 m_last_val = g_get_monotonic_time ();
82 m_start_val = m_last_val = 0;
89 elapsed = m_last_val - m_start_val;
90 m_start_val = m_last_val;
98 return m_last_val - m_start_val;
120 if (m_timing.valid()) {
121 m_elapsed_values.push_back (m_timing.elapsed());
126 uint64_t interval = m_timing.get_interval ();
127 m_elapsed_values.push_back (interval);
131 m_elapsed_values.clear ();
132 m_elapsed_values.reserve (m_reserve_size);
141 uint64_t& total)
const
145 { m_reserve_size = reserve_size; reset (); }
148 {
return m_elapsed_values.size(); }
165 m_data.start_timing ();
170 m_data.add_elapsed ();
181 #endif // __libpbd_timing_h__
std::string summary() const
LIBARDOUR_API PBD::PropertyDescriptor< framepos_t > start
std::vector< uint64_t > m_elapsed_values
void reserve(uint32_t reserve_size)
uint64_t elapsed() const
Elapsed time in microseconds.
LIBPBD_API bool get_min_max_avg_total(const std::vector< uint64_t > &values, uint64_t &min, uint64_t &max, uint64_t &avg, uint64_t &total)
LIBPBD_API std::string timing_summary(const std::vector< uint64_t > &values)
bool get_min_max_avg_total(uint64_t &min, uint64_t &max, uint64_t &avg, uint64_t &total) const