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
16 public:
22 explicit SetupProfiler(std::string_view name) : m_name{name} {}
23
27 void start() {
28#ifndef SLEIPNIR_DISABLE_DIAGNOSTICS
29 m_setup_start_time = std::chrono::steady_clock::now();
30#endif
31 }
32
36 void stop() {
37#ifndef SLEIPNIR_DISABLE_DIAGNOSTICS
38 m_setup_stop_time = std::chrono::steady_clock::now();
39 m_setup_duration = m_setup_stop_time - m_setup_start_time;
40#endif
41 }
42
48 std::string_view name() const { return m_name; }
49
55 const std::chrono::duration<double>& duration() const {
56 return m_setup_duration;
57 }
58
59 private:
61 std::string m_name;
62
63 std::chrono::steady_clock::time_point m_setup_start_time;
64 std::chrono::steady_clock::time_point m_setup_stop_time;
65 std::chrono::duration<double> m_setup_duration{0.0};
66};
67
68} // namespace slp
Definition setup_profiler.hpp:15
const std::chrono::duration< double > & duration() const
Definition setup_profiler.hpp:55
SetupProfiler(std::string_view name)
Definition setup_profiler.hpp:22
std::string_view name() const
Definition setup_profiler.hpp:48
void stop()
Definition setup_profiler.hpp:36
void start()
Definition setup_profiler.hpp:27