summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorAndrei Karas <akaras@inbox.ru>2016-04-26 22:45:55 +0300
committerAndrei Karas <akaras@inbox.ru>2016-04-26 22:45:55 +0300
commit80bbbc4c18273e0d1116d7e924d1df068a5d63d5 (patch)
treebef2f6458ee7fc5079c1993921abdfc4926570bb
parent918e2a5cf24311e87b0dc754770480727f77eac3 (diff)
downloadmv-80bbbc4c18273e0d1116d7e924d1df068a5d63d5.tar.gz
mv-80bbbc4c18273e0d1116d7e924d1df068a5d63d5.tar.bz2
mv-80bbbc4c18273e0d1116d7e924d1df068a5d63d5.tar.xz
mv-80bbbc4c18273e0d1116d7e924d1df068a5d63d5.zip
Add chat command for print memory usage. For now only report about resources.
New chat command: /dumpmemoryusage
-rw-r--r--src/actions/actions.cpp7
-rw-r--r--src/actions/actions.h1
-rw-r--r--src/dyetool/actions/actions.cpp1
-rw-r--r--src/enums/input/inputaction.h1
-rw-r--r--src/input/inputactionmap.h6
-rw-r--r--src/resources/memorymanager.cpp19
-rw-r--r--src/resources/memorymanager.h2
7 files changed, 37 insertions, 0 deletions
diff --git a/src/actions/actions.cpp b/src/actions/actions.cpp
index 1f7df9c9d..1e7a9ad5b 100644
--- a/src/actions/actions.cpp
+++ b/src/actions/actions.cpp
@@ -96,6 +96,7 @@
#include "net/tradehandler.h"
#include "resources/iteminfo.h"
+#include "resources/memorymanager.h"
#include "resources/resourcemanager.h"
#include "const/resources/skill.h"
@@ -1783,4 +1784,10 @@ impHandler(seen)
return true;
}
+impHandler0(dumpMemoryUsage)
+{
+ memoryManager.printAllMemory();
+ return true;
+}
+
} // namespace Actions
diff --git a/src/actions/actions.h b/src/actions/actions.h
index 7d583527b..a09022ce7 100644
--- a/src/actions/actions.h
+++ b/src/actions/actions.h
@@ -113,6 +113,7 @@ namespace Actions
decHandler(resetGameModifiers);
decHandler(barToChat);
decHandler(seen);
+ decHandler(dumpMemoryUsage);
} // namespace Actions
#undef decHandler
diff --git a/src/dyetool/actions/actions.cpp b/src/dyetool/actions/actions.cpp
index bcb5bb98d..e226464a6 100644
--- a/src/dyetool/actions/actions.cpp
+++ b/src/dyetool/actions/actions.cpp
@@ -110,5 +110,6 @@ impHandlerVoid(craftKey)
impHandlerVoid(resetGameModifiers)
impHandlerVoid(barToChat)
impHandlerVoid(seen)
+impHandlerVoid(dumpMemoryUsage)
} // namespace Actions
diff --git a/src/enums/input/inputaction.h b/src/enums/input/inputaction.h
index 1996602da..f0da06745 100644
--- a/src/enums/input/inputaction.h
+++ b/src/enums/input/inputaction.h
@@ -669,6 +669,7 @@ enumStart(InputAction)
COMMAND_GUILD_RECALL,
MAIL_TO,
ADOPT_CHILD,
+ DUMP_MEMORY_USAGE,
TOTAL
}
enumEnd(InputAction);
diff --git a/src/input/inputactionmap.h b/src/input/inputactionmap.h
index 2a12b5765..6d3c957e3 100644
--- a/src/input/inputactionmap.h
+++ b/src/input/inputactionmap.h
@@ -5503,6 +5503,12 @@ static const InputActionData inputActionData
"adoptchild|childadopt|askforchild",
UseArgs_true,
Protected_true},
+ {"keyDumpMemmoryUsage",
+ defaultAction(&Actions::dumpMemoryUsage),
+ InputCondition::INGAME,
+ "dumpmemoryusage|memoryusage",
+ UseArgs_false,
+ Protected_true},
};
#undef defaultAction
diff --git a/src/resources/memorymanager.cpp b/src/resources/memorymanager.cpp
index a07aaa750..a88d53b79 100644
--- a/src/resources/memorymanager.cpp
+++ b/src/resources/memorymanager.cpp
@@ -20,7 +20,12 @@
#include "resources/memorymanager.h"
+#include "logger.h"
+
+#include "resources/resourcemanager.h"
+
#include <SDL_video.h>
+#include <string>
#include "debug.h"
@@ -49,4 +54,18 @@ void MemoryManager::printMemory(const int level A_UNUSED,
const int localSum A_UNUSED,
const int childsSum A_UNUSED)
{
+ std::string str(level, ' ');
+ logger->log("%s%d = %d + %d",
+ str.c_str(),
+ localSum + childsSum,
+ localSum,
+ childsSum);
+}
+
+void MemoryManager::printAllMemory()
+{
+ if (!logger)
+ return;
+ if (resourceManager)
+ resourceManager->calcMemory(0);
}
diff --git a/src/resources/memorymanager.h b/src/resources/memorymanager.h
index 88b55e617..658876776 100644
--- a/src/resources/memorymanager.h
+++ b/src/resources/memorymanager.h
@@ -40,6 +40,8 @@ class MemoryManager final
void printMemory(const int level,
const int localSum,
const int childsSum);
+
+ void printAllMemory();
};
extern MemoryManager memoryManager;