Support pushing > 1 measurement at a time in profiler

This commit is contained in:
Nikita Lisitsa 2024-11-29 00:44:45 +03:00
parent 9b3f2df2a0
commit 95b6651fc3
2 changed files with 5 additions and 5 deletions

View file

@ -17,13 +17,13 @@ namespace psemek::prof
~ profiler();
static void start_frame(std::string const & name);
static void push(std::string const & name, std::chrono::duration<double> duration);
static void push(std::string const & name, std::chrono::duration<double> duration, std::size_t count = 1);
static void end_frame(std::chrono::duration<double> duration);
template <typename Duration>
static void push(std::string const & name, Duration duration)
static void push(std::string const & name, Duration duration, std::size_t count = 1)
{
push(name, std::chrono::duration_cast<std::chrono::duration<double>>(duration));
push(name, std::chrono::duration_cast<std::chrono::duration<double>>(duration), count);
}
double duration() const

View file

@ -199,12 +199,12 @@ namespace psemek::prof
current = current->child(name);
}
void profiler::push(std::string const & name, std::chrono::duration<double> duration)
void profiler::push(std::string const & name, std::chrono::duration<double> duration, std::size_t count)
{
get_current();
std::lock_guard lock{*(current->mutex)};
current->child(name)->execution_time.push(duration.count());
current->child(name)->execution_time.push(duration.count(), count);
}
void profiler::end_frame(std::chrono::duration<double> duration)