6#include <liboscar/oscar_config.h>
20 std::string_view label,
21 std::string_view filename,
27 PerfClock::time_point start,
28 PerfClock::time_point end
44 PerfClock::time_point start_time_ = PerfClock::now();
49#if OPYN_RUNTIME_PERF_MEASUREMENTS_ENABLED
50 #define OSC_PERF_TOKENPASTE(x, y) x##y
51 #define OSC_PERF_TOKENPASTE2(x, y) OSC_PERF_TOKENPASTE(x, y)
52 #define OSC_PERF(label) \
53 static const size_t OSC_PERF_TOKENPASTE2(s_TimerID, __LINE__) = osc::detail::allocate_perf_mesurement_id(label, osc::extract_filename(__FILE__), __LINE__); \
54 const osc::detail::PerfTimer OSC_PERF_TOKENPASTE2(timer, __LINE__) (OSC_PERF_TOKENPASTE2(s_TimerID, __LINE__));
56 #define OSC_PERF(label)
PerfTimer(PerfTimer &&) noexcept=delete
PerfTimer(size_t id)
Definition perf.h:33
PerfTimer(PerfTimer const &)=delete
size_t allocate_perf_mesurement_id(std::string_view label, std::string_view filename, unsigned int line)
void submit_perf_measurement(size_t id, PerfClock::time_point start, PerfClock::time_point end)
Definition custom_decoration_generator.h:5
std::vector< PerfMeasurement > get_all_perf_measurements()
void clear_all_perf_measurements()
constexpr U to(T &&value)
Definition conversion.h:56