25 void start(
const std::string& scope);
34 void stop(
const std::string& scope);
38 scopes.push_back(scope);
42 std::chrono::nanoseconds> started_at)
44 started_ats.push_back(started_at);
54 started_ats.pop_back();
57 const std::chrono::time_point<std::chrono::steady_clock, std::chrono::nanoseconds>
60 return started_ats.back();
65 return scoped_timings_nanos;
76 std::chrono::time_point<std::chrono::steady_clock, std::chrono::nanoseconds>>
80 std::vector<std::string> scopes;
83 std::map<std::vector<std::string>,
long> scoped_timings_nanos;
Provides interface to streaming iostreams to logs.
Definition: wxlogstream.h:19
Parameters for the walltime report.
Definition: wmtimer.h:22
void start(const std::string &scope)
Start a nested timing scope.
void pop_scope()
Definition: wmtimer.h:47
void add_started_at(std::chrono::time_point< std::chrono::steady_clock, std::chrono::nanoseconds > started_at)
Definition: wmtimer.h:41
void print_timings(WxLogStream &stream)
Print the timings in a readable table format to the given log stream.
void add_scope(const std::string &scope)
Definition: wmtimer.h:36
void pop_started_at()
Definition: wmtimer.h:52
void stop(const std::string &scope)
Stop the currently running scope, which must be the same as scope.
std::map< std::vector< std::string >, long > get_scoped_timings()
Definition: wmtimer.h:63
const std::chrono::time_point< std::chrono::steady_clock, std::chrono::nanoseconds > current_started_at()
Definition: wmtimer.h:58
void stop()
Stop the currently running scope.
std::string ROOT_TIMING_SCOPE
Definition: wmtimer.h:88
wxm::timer::WmTimer TIMER
Definition: wmtimer.h:86
Base namespace for everything not included in the global namespace.
Definition: field_source.h:8