Sleipnir C++ API
Loading...
Searching...
No Matches
setup_profiler.hpp
1// Copyright (c) Sleipnir contributors
2
3#pragma once
4
5#include <chrono>
6#include <string>
7#include <string_view>
8
9namespace slp {
10
14 public:
18 explicit SetupProfiler(std::string_view name) : m_name{name} {}
19
21 void start() {
22#ifndef SLEIPNIR_DISABLE_DIAGNOSTICS
23 m_setup_start_time = std::chrono::steady_clock::now();
24#endif
25 }
26
28 void stop() {
29#ifndef SLEIPNIR_DISABLE_DIAGNOSTICS
30 m_setup_stop_time = std::chrono::steady_clock::now();
31 m_setup_duration = m_setup_stop_time - m_setup_start_time;
32#endif
33 }
34
38 std::string_view name() const { return m_name; }
39
43 const std::chrono::duration<double>& duration() const {
44 return m_setup_duration;
45 }
46
47 private:
49 std::string m_name;
50
51 std::chrono::steady_clock::time_point m_setup_start_time;
52 std::chrono::steady_clock::time_point m_setup_stop_time;
53 std::chrono::duration<double> m_setup_duration{0.0};
54};
55
56} // namespace slp
Definition setup_profiler.hpp:13
const std::chrono::duration< double > & duration() const
Definition setup_profiler.hpp:43
SetupProfiler(std::string_view name)
Definition setup_profiler.hpp:18
std::string_view name() const
Definition setup_profiler.hpp:38
void stop()
Tell the profiler to stop measuring setup time.
Definition setup_profiler.hpp:28
void start()
Tell the profiler to start measuring setup time.
Definition setup_profiler.hpp:21