summaryrefslogtreecommitdiff
path: root/src/profiler.h
diff options
context:
space:
mode:
authorPerttu Ahola <celeron55@gmail.com>2012-03-21 03:33:02 +0200
committerPerttu Ahola <celeron55@gmail.com>2012-03-21 15:06:41 +0200
commit7d1ac4d1f6b53fb5e99ba86dd654d27b27146898 (patch)
treee8fc75cf3227714f06c028c43adf2a55677ad614 /src/profiler.h
parent2f2ef80ec274daa0f7a814b28429f48447cd88b0 (diff)
downloadminetest-7d1ac4d1f6b53fb5e99ba86dd654d27b27146898.tar.gz
minetest-7d1ac4d1f6b53fb5e99ba86dd654d27b27146898.tar.bz2
minetest-7d1ac4d1f6b53fb5e99ba86dd654d27b27146898.zip
Profiler graph
Diffstat (limited to 'src/profiler.h')
-rw-r--r--src/profiler.h21
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{