Jolt Physics
A multi core friendly Game Physics Engine
|
#include <mutex>
#include <chrono>
#include <Jolt/Core/NonCopyable.h>
#include <Jolt/Core/TickCounter.h>
#include <Jolt/Core/UnorderedMap.h>
#include "Profiler.inl"
Go to the source code of this file.
Classes | |
class | Profiler |
Singleton class for managing profiling information. More... | |
class | ProfileSample |
class | ProfileThread |
Collects all samples of a single thread. More... | |
class | ProfileMeasurement |
Create this class on the stack to start sampling timing information of a particular scope. More... | |
Macros | |
#define | JPH_PROFILE_START(name) do { Profiler::sInstance = new Profiler; JPH_PROFILE_THREAD_START(name); } while (false) |
Start instrumenting program. More... | |
#define | JPH_PROFILE_END() do { JPH_PROFILE_THREAD_END(); delete Profiler::sInstance; Profiler::sInstance = nullptr; } while (false) |
End instrumenting program. More... | |
#define | JPH_PROFILE_THREAD_START(name) do { if (Profiler::sInstance) ProfileThread::sSetInstance(new ProfileThread(name)); } while (false) |
Start instrumenting a thread. More... | |
#define | JPH_PROFILE_THREAD_END() do { delete ProfileThread::sGetInstance(); ProfileThread::sSetInstance(nullptr); } while (false) |
End instrumenting a thread. More... | |
#define | JPH_PROFILE_TAG2(line) profile##line |
Scope profiling measurement. More... | |
#define | JPH_PROFILE_TAG(line) JPH_PROFILE_TAG2(line) |
#define | JPH_PROFILE(...) ProfileMeasurement JPH_PROFILE_TAG(__LINE__)(__VA_ARGS__) |
#define | JPH_PROFILE_FUNCTION() JPH_PROFILE(JPH_FUNCTION_NAME) |
Scope profiling for function. More... | |
#define | JPH_PROFILE_NEXTFRAME() Profiler::sInstance->NextFrame() |
Update frame counter. More... | |
#define | JPH_PROFILE_DUMP(...) Profiler::sInstance->Dump(__VA_ARGS__) |
Dump profiling info. More... | |
#define JPH_PROFILE | ( | ... | ) | ProfileMeasurement JPH_PROFILE_TAG(__LINE__)(__VA_ARGS__) |
#define JPH_PROFILE_DUMP | ( | ... | ) | Profiler::sInstance->Dump(__VA_ARGS__) |
Dump profiling info.
#define JPH_PROFILE_END | ( | ) | do { JPH_PROFILE_THREAD_END(); delete Profiler::sInstance; Profiler::sInstance = nullptr; } while (false) |
End instrumenting program.
#define JPH_PROFILE_FUNCTION | ( | ) | JPH_PROFILE(JPH_FUNCTION_NAME) |
Scope profiling for function.
#define JPH_PROFILE_NEXTFRAME | ( | ) | Profiler::sInstance->NextFrame() |
Update frame counter.
#define JPH_PROFILE_START | ( | name | ) | do { Profiler::sInstance = new Profiler; JPH_PROFILE_THREAD_START(name); } while (false) |
Start instrumenting program.
#define JPH_PROFILE_TAG | ( | line | ) | JPH_PROFILE_TAG2(line) |
#define JPH_PROFILE_TAG2 | ( | line | ) | profile##line |
Scope profiling measurement.
#define JPH_PROFILE_THREAD_END | ( | ) | do { delete ProfileThread::sGetInstance(); ProfileThread::sSetInstance(nullptr); } while (false) |
End instrumenting a thread.
#define JPH_PROFILE_THREAD_START | ( | name | ) | do { if (Profiler::sInstance) ProfileThread::sSetInstance(new ProfileThread(name)); } while (false) |
Start instrumenting a thread.