diff options
author | SmallJoker <SmallJoker@users.noreply.github.com> | 2017-05-26 14:03:36 +0200 |
---|---|---|
committer | GitHub <noreply@github.com> | 2017-05-26 14:03:36 +0200 |
commit | d99b6fed5517797bfafe4bbb307963967f0ca749 (patch) | |
tree | 0a4ff946a9d8bbcd1e921d3981eec96e988bc5c8 /src/profiler.cpp | |
parent | 4d5ce8478c959a4ee5b13ef9ba7e46b28d089a21 (diff) | |
download | hax-minetest-server-d99b6fed5517797bfafe4bbb307963967f0ca749.tar.gz hax-minetest-server-d99b6fed5517797bfafe4bbb307963967f0ca749.zip |
Time: Change old `u32` timestamps to 64-bit (#5818)
MacOSX build fix + cleanups
Diffstat (limited to 'src/profiler.cpp')
-rw-r--r-- | src/profiler.cpp | 30 |
1 files changed, 30 insertions, 0 deletions
diff --git a/src/profiler.cpp b/src/profiler.cpp index 197e094f6..8e997442c 100644 --- a/src/profiler.cpp +++ b/src/profiler.cpp @@ -21,3 +21,33 @@ with this program; if not, write to the Free Software Foundation, Inc., static Profiler main_profiler; Profiler *g_profiler = &main_profiler; +ScopeProfiler::ScopeProfiler( + Profiler *profiler, const std::string &name, ScopeProfilerType type) + : m_profiler(profiler), m_name(name), m_timer(NULL), m_type(type) +{ + if (m_profiler) + m_timer = new TimeTaker(m_name); +} + +ScopeProfiler::~ScopeProfiler() +{ + if (!m_timer) + return; + + float duration_ms = m_timer->stop(true); + float duration = duration_ms / 1000.0; + if (m_profiler) { + switch (m_type) { + case SPT_ADD: + m_profiler->add(m_name, duration); + break; + case SPT_AVG: + m_profiler->avg(m_name, duration); + break; + case SPT_GRAPH_ADD: + m_profiler->graphAdd(m_name, duration); + break; + } + } + delete m_timer; +} |