diff options
author | Perttu Ahola <celeron55@gmail.com> | 2012-03-21 03:33:02 +0200 |
---|---|---|
committer | Perttu Ahola <celeron55@gmail.com> | 2012-03-21 15:06:41 +0200 |
commit | 7d1ac4d1f6b53fb5e99ba86dd654d27b27146898 (patch) | |
tree | e8fc75cf3227714f06c028c43adf2a55677ad614 /src/profiler.h | |
parent | 2f2ef80ec274daa0f7a814b28429f48447cd88b0 (diff) | |
download | minetest-7d1ac4d1f6b53fb5e99ba86dd654d27b27146898.tar.gz minetest-7d1ac4d1f6b53fb5e99ba86dd654d27b27146898.tar.bz2 minetest-7d1ac4d1f6b53fb5e99ba86dd654d27b27146898.zip |
Profiler graph
Diffstat (limited to 'src/profiler.h')
-rw-r--r-- | src/profiler.h | 21 |
1 files changed, 21 insertions, 0 deletions
diff --git a/src/profiler.h b/src/profiler.h index 7bb3b3750..938742f22 100644 --- a/src/profiler.h +++ b/src/profiler.h @@ -25,6 +25,7 @@ with this program; if not, write to the Free Software Foundation, Inc., #include "utility.h" #include <jmutex.h> #include <jmutexautolock.h> +#include <map> /* Time profiler @@ -146,10 +147,30 @@ public: } } + typedef std::map<std::string, float> GraphValues; + + void graphAdd(const std::string &id, float value) + { + JMutexAutoLock lock(m_mutex); + std::map<std::string, float>::iterator i = + m_graphvalues.find(id); + if(i == m_graphvalues.end()) + m_graphvalues[id] = value; + else + i->second += value; + } + void graphGet(GraphValues &result) + { + JMutexAutoLock lock(m_mutex); + result = m_graphvalues; + m_graphvalues.clear(); + } + private: JMutex m_mutex; core::map<std::string, float> m_data; core::map<std::string, int> m_avgcounts; + std::map<std::string, float> m_graphvalues; }; enum ScopeProfilerType{ |