History

V8 memory usage statistics

ksuprynowicz committed 3 years ago

Commit 56c3bad1 parent 2faacfa6 files · +130 −33Browse files

Showing the changes to libraries/script-engine/src/ScriptManagerScriptingInterface.cpp (1 of 6 files). Show all

Unified · Split

libraries/script-engine/src/ScriptManagerScriptingInterface.cpp+45−33
@@ -12,42 +12,54 @@ · 11 unmodified lines
12 12
13#include "ScriptManager.h"13#include "ScriptManager.h"
14#include "ScriptManagerScriptingInterface.h"14#include "ScriptManagerScriptingInterface.h"
15#include "ScriptEngine.h"
15#include <QMetaType>16#include <QMetaType>
16 17
17 18
18 19
19 ScriptManagerScriptingInterface::ScriptManagerScriptingInterface(ScriptManager *parent): QObject(parent), _manager(parent) {20 ScriptManagerScriptingInterface::ScriptManagerScriptingInterface(ScriptManager *parent): QObject(parent), _manager(parent) {
20 21
21 qRegisterMetaType<ScriptException>();22 qRegisterMetaType<ScriptException>();
22 qRegisterMetaType<ScriptEngineException>();23 qRegisterMetaType<ScriptEngineException>();
23 qRegisterMetaType<ScriptRuntimeException>();24 qRegisterMetaType<ScriptRuntimeException>();
24 25
25 qRegisterMetaType<std::shared_ptr<ScriptException>>();26 qRegisterMetaType<std::shared_ptr<ScriptException>>();
26 qRegisterMetaType<std::shared_ptr<ScriptEngineException>>();27 qRegisterMetaType<std::shared_ptr<ScriptEngineException>>();
27 qRegisterMetaType<std::shared_ptr<ScriptRuntimeException>>();28 qRegisterMetaType<std::shared_ptr<ScriptRuntimeException>>();
28 29
29 30
30 connect(_manager, &ScriptManager::scriptLoaded, this, &ScriptManagerScriptingInterface::scriptLoaded);31 connect(_manager, &ScriptManager::scriptLoaded, this, &ScriptManagerScriptingInterface::scriptLoaded);
31 connect(_manager, &ScriptManager::errorLoadingScript, this, &ScriptManagerScriptingInterface::errorLoadingScript);32 connect(_manager, &ScriptManager::errorLoadingScript, this, &ScriptManagerScriptingInterface::errorLoadingScript);
32 connect(_manager, &ScriptManager::update, this, &ScriptManagerScriptingInterface::update);33 connect(_manager, &ScriptManager::update, this, &ScriptManagerScriptingInterface::update);
33 connect(_manager, &ScriptManager::scriptEnding, this, &ScriptManagerScriptingInterface::scriptEnding);34 connect(_manager, &ScriptManager::scriptEnding, this, &ScriptManagerScriptingInterface::scriptEnding);
34 connect(_manager, &ScriptManager::finished, this, &ScriptManagerScriptingInterface::finished);35 connect(_manager, &ScriptManager::finished, this, &ScriptManagerScriptingInterface::finished);
35 connect(_manager, &ScriptManager::printedMessage, this, &ScriptManagerScriptingInterface::printedMessage);36 connect(_manager, &ScriptManager::printedMessage, this, &ScriptManagerScriptingInterface::printedMessage);
36 connect(_manager, &ScriptManager::errorMessage, this, &ScriptManagerScriptingInterface::errorMessage);37 connect(_manager, &ScriptManager::errorMessage, this, &ScriptManagerScriptingInterface::errorMessage);
37 connect(_manager, &ScriptManager::warningMessage, this, &ScriptManagerScriptingInterface::warningMessage);38 connect(_manager, &ScriptManager::warningMessage, this, &ScriptManagerScriptingInterface::warningMessage);
38 connect(_manager, &ScriptManager::infoMessage, this, &ScriptManagerScriptingInterface::infoMessage);39 connect(_manager, &ScriptManager::infoMessage, this, &ScriptManagerScriptingInterface::infoMessage);
39 connect(_manager, &ScriptManager::runningStateChanged, this, &ScriptManagerScriptingInterface::runningStateChanged);40 connect(_manager, &ScriptManager::runningStateChanged, this, &ScriptManagerScriptingInterface::runningStateChanged);
40 connect(_manager, &ScriptManager::clearDebugWindow, this, &ScriptManagerScriptingInterface::clearDebugWindow);41 connect(_manager, &ScriptManager::clearDebugWindow, this, &ScriptManagerScriptingInterface::clearDebugWindow);
41 connect(_manager, &ScriptManager::loadScript, this, &ScriptManagerScriptingInterface::loadScript);42 connect(_manager, &ScriptManager::loadScript, this, &ScriptManagerScriptingInterface::loadScript);
42 connect(_manager, &ScriptManager::doneRunning, this, &ScriptManagerScriptingInterface::doneRunning);43 connect(_manager, &ScriptManager::doneRunning, this, &ScriptManagerScriptingInterface::doneRunning);
43 connect(_manager, &ScriptManager::entityScriptDetailsUpdated, this, &ScriptManagerScriptingInterface::entityScriptDetailsUpdated);44 connect(_manager, &ScriptManager::entityScriptDetailsUpdated, this, &ScriptManagerScriptingInterface::entityScriptDetailsUpdated);
44 connect(_manager, &ScriptManager::entityScriptPreloadFinished, this, &ScriptManagerScriptingInterface::entityScriptPreloadFinished);45 connect(_manager, &ScriptManager::entityScriptPreloadFinished, this, &ScriptManagerScriptingInterface::entityScriptPreloadFinished);
45 connect(_manager, &ScriptManager::unhandledException, this, &ScriptManagerScriptingInterface::scriptManagerException);46 connect(_manager, &ScriptManager::unhandledException, this, &ScriptManagerScriptingInterface::scriptManagerException);
46 }47}
47 48
48 void ScriptManagerScriptingInterface::scriptManagerException(std::shared_ptr<ScriptException> exception) {49void ScriptManagerScriptingInterface::scriptManagerException(std::shared_ptr<ScriptException> exception) {
49 // V8TODO: What should we actually handle here?50 // V8TODO: What should we actually handle here?
50 51
51 52
52 // emit unhandledException(exception.thrownValue);53 // emit unhandledException(exception.thrownValue);
53 }54}
55
56QVariantMap ScriptManagerScriptingInterface::getMemoryUsageStatistics() {
57 auto statistics = _manager->engine()->getMemoryUsageStatistics();
58 QVariantMap map;
59 map.insert("totalHeapSize", QVariant((qulonglong)(statistics.totalHeapSize)));
60 map.insert("usedHeapSize", QVariant((qulonglong)(statistics.usedHeapSize)));
61 map.insert("totalAvailableSize", QVariant((qulonglong)(statistics.totalAvailableSize)));
62 map.insert("totalGlobalHandlesSize", QVariant((qulonglong)(statistics.totalGlobalHandlesSize)));
63 map.insert("usedGlobalHandlesSize", QVariant((qulonglong)(statistics.usedGlobalHandlesSize)));
64 return map;
65}