18 #include "cldnn_defs.h" 24 namespace instrumentation
33 template<
class ClockTy = std::chrono::steady_clock>
35 typename ClockTy::time_point start_point;
41 timer() :start_point(ClockTy::now()) {}
51 virtual std::chrono::nanoseconds
value()
const = 0;
60 template<
class _Rep,
class _Period>
62 _value(
std::chrono::duration_cast<
std::chrono::nanoseconds>(val)) {}
65 std::chrono::nanoseconds
value()
const override {
return _value; }
67 std::chrono::nanoseconds _value;
74 std::shared_ptr<profiling_period>
value;
virtual ~profiling_period()=default
Destructor.
val_type uptime() const
Returns time eapsed since construction.
virtual std::chrono::nanoseconds value() const =0
Returns profiling period value.
Basic profiling_period implementation which stores data as an simple period value.
std::vector< profiling_interval > intervals
List of intervals.
std::shared_ptr< profiling_period > value
Interval value.
ClockTy::duration val_type
Timer value type.
Represents list of profiling_interval.
std::string name
Display name.
Abstract class to represent profiling period.
profiling_period_basic(const std::chrono::duration< _Rep, _Period > &val)
Constructs from std::chrono::duration.
std::string name
Display name.
Represents prifiling interval as its name and value.
Helper class to calculate time periods.
std::chrono::nanoseconds value() const override
Returns profiling period value passed in constructor.