X-Git-Url: http://git.tdb.fi/?p=libs%2Fcore.git;a=blobdiff_plain;f=source%2Fdebug%2Fprofiler.h;h=22d2c9a82c9fcb7df8545d16e7545d9ebb0720a3;hp=7a82c5631899699cb42d04773bbf6e4c9ec5b4e9;hb=HEAD;hpb=df062ebec635daeb68e6f8ce46f8aa7c0b913164 diff --git a/source/debug/profiler.h b/source/debug/profiler.h index 7a82c56..7d98dc7 100644 --- a/source/debug/profiler.h +++ b/source/debug/profiler.h @@ -4,6 +4,8 @@ #include #include #include +#include +#include #include #include @@ -24,39 +26,35 @@ profiled. Note: This is not thread-safe. To profile multiple threads, create a separate Profiler for each thread. */ -class Profiler +class MSPCORE_API Profiler: private NonCopyable { public: - struct CallInfo + struct MSPCORE_API CallInfo { Msp::Time::TimeStamp entry_time; Msp::Time::TimeDelta duration; }; - struct ScopeInfo + struct MSPCORE_API ScopeInfo { Time::TimeStamp first_call; - unsigned calls; + unsigned calls = 0; Time::TimeDelta total_time; Time::TimeDelta self_time; Time::TimeDelta avg_time; - float calls_per_sec; + float calls_per_sec = 0; std::vector history; - unsigned hist_pos; - bool hist_full; + unsigned hist_pos = 0; + bool hist_full = false; std::map called_from; - - ScopeInfo(); }; private: - unsigned period; + unsigned period = 0; std::map scopes; - ProfilingScope *inner; + ProfilingScope *inner = nullptr; public: - Profiler(); - /** Sets the averaging period for timing data, measured in calls. Previous average timings are cleared. */ void set_period(unsigned p);