timemory 3.3.0
Modular C++ Toolkit for Performance Analysis and Logging. Profiling API and Tools for C, C++, CUDA, Fortran, and Python. The C++ template API is essentially a framework to creating tools: it is designed to provide a unifying interface for recording various performance measurements alongside data logging and interfaces to other tools.
tim::component::monotonic_clock Struct Reference

clock that increments monotonically, tracking the time since an arbitrary point, and will continue to increment while the system is asleep. More...

#include "timemory/components/timing/components.hpp"

+ Collaboration diagram for tim::component::monotonic_clock:

Public Types

using ratio_t = std::nano
 
using value_type = int64_t
 
using base_type = base< monotonic_clock, value_type >
 
using storage_type = empty_storage
 

Public Member Functions

double get () const noexcept
 
double get_display () const noexcept
 
void start () noexcept
 
void stop () noexcept
 

Static Public Member Functions

static std::string label ()
 
static std::string description ()
 
static value_type record ()
 
template<typename... Args>
static opaque get_opaque (Args &&...)
 

Detailed Description

clock that increments monotonically, tracking the time since an arbitrary point, and will continue to increment while the system is asleep.

Definition at line 137 of file components.hpp.

Member Typedef Documentation

◆ base_type

◆ ratio_t

Definition at line 139 of file components.hpp.

◆ storage_type

Definition at line 66 of file declaration.hpp.

◆ value_type

Definition at line 140 of file components.hpp.

Member Function Documentation

◆ description()

static std::string tim::component::monotonic_clock::description ( )
inlinestatic

Definition at line 144 of file components.hpp.

145 {
146 return "Wall-clock timer which will continue to increment even while the system "
147 "is asleep";
148 }

◆ get()

double tim::component::monotonic_clock::get ( ) const
inlinenoexcept

Definition at line 153 of file components.hpp.

154 {
155 return load() / static_cast<double>(base_type::get_unit());
156 }
static int64_t get_unit()

References tim::component::base< Tp, Value >::get_unit(), and tim::component::base< monotonic_clock >::load().

Referenced by get_display().

◆ get_display()

double tim::component::monotonic_clock::get_display ( ) const
inlinenoexcept

Definition at line 157 of file components.hpp.

157{ return get(); }
double get() const noexcept
Definition: components.hpp:153

References get().

◆ get_opaque()

template<typename... Args>
static opaque tim::component::empty_base::get_opaque ( Args &&  ...)
inlinestaticinherited

Definition at line 72 of file declaration.hpp.

73 {
74 return opaque{};
75 }

◆ label()

static std::string tim::component::monotonic_clock::label ( )
inlinestatic

Definition at line 143 of file components.hpp.

143{ return "monotonic_clock"; }

◆ record()

static value_type tim::component::monotonic_clock::record ( )
inlinestatic

Definition at line 149 of file components.hpp.

150 {
151 return tim::get_clock_monotonic_now<int64_t, ratio_t>();
152 }

Referenced by start(), and stop().

◆ start()

void tim::component::monotonic_clock::start ( )
inlinenoexcept

Definition at line 158 of file components.hpp.

158{ value = record(); }
static value_type record()
Definition: components.hpp:149

References record().

◆ stop()

void tim::component::monotonic_clock::stop ( )
inlinenoexcept

Definition at line 159 of file components.hpp.

160 {
161 value = (record() - value);
162 accum += value;
163 }

References record().


The documentation for this struct was generated from the following file: