Uni20
Asynchronous tensor and runtime library.
Loading...
Searching...
No Matches
Public Member Functions | Static Public Attributes | List of all members
uni20::performance::DurationMeasurements< Event, EventCount > Class Template Reference

Fixed-size coarse wall-duration collector indexed by an event enum. More...

#include <performance_measurements.hpp>

Inheritance diagram for uni20::performance::DurationMeasurements< Event, EventCount >:
[legend]

Public Member Functions

auto operator[] (Event event) const noexcept -> DurationStatistics const &
 Return aggregate statistics for one event.
 
void record_duration (Event event, Duration duration) noexcept
 Record one completed event duration.
 
constexpr void reset () noexcept
 Clear every recorded statistic.
 

Static Public Attributes

static constexpr std::size_t event_count = EventCount
 
static constexpr MeasurementLevel measurement_level = MeasurementLevel::coarse
 

Detailed Description

template<class Event, std::size_t EventCount>
class uni20::performance::DurationMeasurements< Event, EventCount >

Fixed-size coarse wall-duration collector indexed by an event enum.

The collector is intentionally not thread-safe. Coarse instrumentation records operation-scale phase boundaries from their calling thread. Detailed concurrent work should first record into disjoint per-item slots and aggregate after the batch joins.

Template Parameters
EventEnum or enum-like event identifier convertible to std::size_t.
EventCountNumber of valid event identifiers.

Member Function Documentation

◆ operator[]()

template<class Event , std::size_t EventCount>
auto uni20::performance::DurationMeasurements< Event, EventCount >::operator[] ( Event  event) const -> DurationStatistics const&
inlinenoexcept

Return aggregate statistics for one event.

Precondition
event identifies an element of [0, EventCount).
Parameters
eventEvent identifier.
Returns
Immutable aggregate statistics.

◆ record_duration()

template<class Event , std::size_t EventCount>
void uni20::performance::DurationMeasurements< Event, EventCount >::record_duration ( Event  event,
Duration  duration 
)
inlinenoexcept

Record one completed event duration.

Precondition
event identifies an element of [0, EventCount).
Parameters
eventEvent identifier.
durationNonnegative elapsed duration to aggregate.

◆ reset()

template<class Event , std::size_t EventCount>
constexpr void uni20::performance::DurationMeasurements< Event, EventCount >::reset ( )
inlineconstexprnoexcept

Clear every recorded statistic.

Member Data Documentation

◆ event_count

template<class Event , std::size_t EventCount>
constexpr std::size_t uni20::performance::DurationMeasurements< Event, EventCount >::event_count = EventCount
staticconstexpr

◆ measurement_level

template<class Event , std::size_t EventCount>
constexpr MeasurementLevel uni20::performance::DurationMeasurements< Event, EventCount >::measurement_level = MeasurementLevel::coarse
staticconstexpr

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