perfc 0.11.0
Loading...
Searching...
No Matches
perfc Namespace Reference

Classes

class  Counter
 
class  Counter< T, Clock, typename std::enable_if<!std::is_void< Clock >::value >::type >
 With timestamp Partial specialization for non-void Clock type. More...
 
class  Counter< T, void, typename std::enable_if< std::is_integral< T >::value >::type >
 Integrals w/o timestamp Partial specialization for integral types T and without clock. More...
 
class  Counter< T, void, typename std::enable_if<!std::is_integral< T >::value >::type >
 Non-integrals w/o timestamp Partial specialization matching void clocks and non-integral T's. More...
 
struct  CounterTypes
 Helper used when declaring counter types in perfc::Register. More...
 
class  Locked
 Simple type that provide synchronized access by holding a lock to T container. More...
 
class  Register
 Register of counter variants, used for example to facilitate discovery/monitoring. More...
 
class  ScopedRegistration
 RAII object to manage automatic deregistration. More...
 
struct  Timestamped
 Trivial type describing a counter value and associated timestamp. More...
 

Typedefs

Aliases of timestamped counters

These aliases are using the clock std::steady_clock as a timestamp source.

using CounterDoubleTs = Counter<double, std::chrono::steady_clock>
 
using CounterU64Ts = Counter<std::uint64_t, std::chrono::steady_clock>
 
using CounterI64Ts = Counter<std::int64_t, std::chrono::steady_clock>
 
Aliases of non-timestamped counters

These counters aliases have no internal timestamp and are very light weight and on most 64bit architectures they are fully lock-free.

using CounterDouble = Counter<double, void>
 
using CounterU64 = Counter<std::uint64_t, void>
 
using CounterI64 = Counter<std::int64_t, void>
 

Enumerations

enum class  MemoryOrder : std::underlying_type_t< std::memory_order >
 Memory ordering constraints. More...
 

Functions

Synchronization functions

Provides capability to synchronize relaxed atomic counter reads and writes.

void CounterAcquire () noexcept
 Synchronizes-with CounterRelease() or Counter store operations using MemoryOrder::Release.
 
void CounterRelease () noexcept
 Synchronizes-with CounterAcquire() or counter load operations using MemoryOrder::Acquire.