25 std::chrono::high_resolution_clock::time_point
mStartTime;
30 using BlocksPerThread = std::map<std::thread::id, std::map<std::string, ProfileBlock>>;
35 void addBlock(std::string&& name, std::chrono::nanoseconds
time);
45#define SHKYERA_PROFILE(name) ProfileGuard __SHKYERA_UNIQUE_NAME(__LINE__)(name)
46#define SHKYERA_READ_PROFILE Profiler::getInstance().getProfiles()
47#define SHKYERA_CLEAR_PROFILE Profiler::getInstance().clear()
49#define __SHKYERA_UNIQUE_NAME(LINE) __SHKYERA_CONCAT(profileGuard_, LINE)
50#define __SHKYERA_CONCAT(X, Y) __SHKYERA_CONCAT_IMPL(X, Y)
51#define __SHKYERA_CONCAT_IMPL(X, Y) X##Y
Definition Profiler.hpp:18
std::chrono::high_resolution_clock::time_point mStartTime
Definition Profiler.hpp:25
~ProfileGuard()
Definition Profiler.cpp:16
std::string mProfileName
Definition Profiler.hpp:24
Definition Profiler.hpp:28
void addBlock(std::string &&name, std::chrono::nanoseconds time)
Definition Profiler.cpp:33
static Profiler & getInstance()
Definition Profiler.cpp:23
BlocksPerThread getProfiles()
Definition Profiler.cpp:41
void clear()
Definition Profiler.cpp:28
std::mutex mMutex
Definition Profiler.hpp:41
std::map< std::thread::id, std::map< std::string, ProfileBlock > > BlocksPerThread
Definition Profiler.hpp:30
BlocksPerThread mProfileBlocks
Definition Profiler.hpp:42
Definition Profiler.hpp:11
ProfileBlock & operator+=(const ProfileBlock &other)
Definition Profiler.cpp:5
size_t numberOfCalls
Definition Profiler.hpp:13
double totalLengthInNanoSeconds
Definition Profiler.hpp:12