Go to the documentation of this file.
5 #include <unordered_map>
10 using t_clock = std::chrono::high_resolution_clock;
28 std::cout <<
"Timers results:" <<
'\n';
29 for (
const auto &measurement :
m_timers) {
30 std::cout << measurement.first <<
": "
31 << std::chrono::duration_cast<std::chrono::milliseconds>(measurement.second.time).count() <<
" ms ("
32 << std::chrono::duration_cast<std::chrono::milliseconds>(measurement.second.time).count() /
33 measurement.second.nCalls
34 <<
" per " << measurement.second.nCalls <<
" calls)" <<
'\n';
39 void UpdateTimer(std::string &&timerName, t_clock::duration time) {
42 auto &measurement =
m_timers[timerName];
43 measurement.time += time;
47 std::unordered_map<std::string, Measurement>
m_timers;
65 return std::make_unique<Stopwatch>(std::move(name),
this);
std::chrono::high_resolution_clock t_clock
Definition: Benchmark.h:10
Definition: Benchmark.h:14
~Stopwatch()
Definition: Benchmark.h:53
t_clock::time_point m_start
Definition: Benchmark.h:60
std::string m_name
Definition: Benchmark.h:56
Stopwatch(std::string name, Benchmark *bench)
Definition: Benchmark.h:52
std::unordered_map< std::string, Measurement > m_timers
Definition: Benchmark.h:45
Definition: Benchmark.h:50
t_clock::duration time
Definition: Benchmark.h:19
std::unique_ptr< Stopwatch > MakeStopwatchPtr(std::string name)
Definition: Benchmark.h:64
unsigned int nCalls
Definition: Benchmark.h:20
Definition: Benchmark.h:18
Stopwatch MakeStopwatch(std::string name)
Definition: Benchmark.h:63
void Print()
Definition: Benchmark.h:27
void UpdateTimer(std::string &&timerName, t_clock::duration time)
Definition: Benchmark.h:39
friend class Stopwatch
Definition: Benchmark.h:15
Benchmark * m_bench
Definition: Benchmark.h:58