![]() |
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.