From 80bbbc4c18273e0d1116d7e924d1df068a5d63d5 Mon Sep 17 00:00:00 2001 From: Andrei Karas Date: Tue, 26 Apr 2016 22:45:55 +0300 Subject: Add chat command for print memory usage. For now only report about resources. New chat command: /dumpmemoryusage --- src/actions/actions.cpp | 7 +++++++ src/actions/actions.h | 1 + src/dyetool/actions/actions.cpp | 1 + src/enums/input/inputaction.h | 1 + src/input/inputactionmap.h | 6 ++++++ src/resources/memorymanager.cpp | 19 +++++++++++++++++++ src/resources/memorymanager.h | 2 ++ 7 files changed, 37 insertions(+) (limited to 'src') 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 +#include #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; -- cgit v1.2.3-60-g2f50