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
1212
1313 #include "ScriptManager.h"
1414 #include "ScriptManagerScriptingInterface.h"
15+#include "ScriptEngine.h"
1516 #include <QMetaType>
1617
1718
1819
1920 ScriptManagerScriptingInterface::ScriptManagerScriptingInterface(ScriptManager *parent): QObject(parent), _manager(parent) {
2021
21− qRegisterMetaType<ScriptException>();
22− qRegisterMetaType<ScriptEngineException>();
23− qRegisterMetaType<ScriptRuntimeException>();
24−
25− qRegisterMetaType<std::shared_ptr<ScriptException>>();
26− qRegisterMetaType<std::shared_ptr<ScriptEngineException>>();
27− qRegisterMetaType<std::shared_ptr<ScriptRuntimeException>>();
28−
29−
30− connect(_manager, &ScriptManager::scriptLoaded, this, &ScriptManagerScriptingInterface::scriptLoaded);
31− connect(_manager, &ScriptManager::errorLoadingScript, this, &ScriptManagerScriptingInterface::errorLoadingScript);
32− connect(_manager, &ScriptManager::update, this, &ScriptManagerScriptingInterface::update);
33− connect(_manager, &ScriptManager::scriptEnding, this, &ScriptManagerScriptingInterface::scriptEnding);
34− connect(_manager, &ScriptManager::finished, this, &ScriptManagerScriptingInterface::finished);
35− connect(_manager, &ScriptManager::printedMessage, this, &ScriptManagerScriptingInterface::printedMessage);
36− connect(_manager, &ScriptManager::errorMessage, this, &ScriptManagerScriptingInterface::errorMessage);
37− connect(_manager, &ScriptManager::warningMessage, this, &ScriptManagerScriptingInterface::warningMessage);
38− connect(_manager, &ScriptManager::infoMessage, this, &ScriptManagerScriptingInterface::infoMessage);
39− connect(_manager, &ScriptManager::runningStateChanged, this, &ScriptManagerScriptingInterface::runningStateChanged);
40− connect(_manager, &ScriptManager::clearDebugWindow, this, &ScriptManagerScriptingInterface::clearDebugWindow);
41− connect(_manager, &ScriptManager::loadScript, this, &ScriptManagerScriptingInterface::loadScript);
42− connect(_manager, &ScriptManager::doneRunning, this, &ScriptManagerScriptingInterface::doneRunning);
43− connect(_manager, &ScriptManager::entityScriptDetailsUpdated, this, &ScriptManagerScriptingInterface::entityScriptDetailsUpdated);
44− connect(_manager, &ScriptManager::entityScriptPreloadFinished, this, &ScriptManagerScriptingInterface::entityScriptPreloadFinished);
45− connect(_manager, &ScriptManager::unhandledException, this, &ScriptManagerScriptingInterface::scriptManagerException);
46− }
47−
48− void ScriptManagerScriptingInterface::scriptManagerException(std::shared_ptr<ScriptException> exception) {
49− // V8TODO: What should we actually handle here?
50−
51−
52− // emit unhandledException(exception.thrownValue);
53− }
22+ qRegisterMetaType<ScriptException>();
23+ qRegisterMetaType<ScriptEngineException>();
24+ qRegisterMetaType<ScriptRuntimeException>();
25+
26+ qRegisterMetaType<std::shared_ptr<ScriptException>>();
27+ qRegisterMetaType<std::shared_ptr<ScriptEngineException>>();
28+ qRegisterMetaType<std::shared_ptr<ScriptRuntimeException>>();
29+
30+
31+ connect(_manager, &ScriptManager::scriptLoaded, this, &ScriptManagerScriptingInterface::scriptLoaded);
32+ connect(_manager, &ScriptManager::errorLoadingScript, this, &ScriptManagerScriptingInterface::errorLoadingScript);
33+ connect(_manager, &ScriptManager::update, this, &ScriptManagerScriptingInterface::update);
34+ connect(_manager, &ScriptManager::scriptEnding, this, &ScriptManagerScriptingInterface::scriptEnding);
35+ connect(_manager, &ScriptManager::finished, this, &ScriptManagerScriptingInterface::finished);
36+ connect(_manager, &ScriptManager::printedMessage, this, &ScriptManagerScriptingInterface::printedMessage);
37+ connect(_manager, &ScriptManager::errorMessage, this, &ScriptManagerScriptingInterface::errorMessage);
38+ connect(_manager, &ScriptManager::warningMessage, this, &ScriptManagerScriptingInterface::warningMessage);
39+ connect(_manager, &ScriptManager::infoMessage, this, &ScriptManagerScriptingInterface::infoMessage);
40+ connect(_manager, &ScriptManager::runningStateChanged, this, &ScriptManagerScriptingInterface::runningStateChanged);
41+ connect(_manager, &ScriptManager::clearDebugWindow, this, &ScriptManagerScriptingInterface::clearDebugWindow);
42+ connect(_manager, &ScriptManager::loadScript, this, &ScriptManagerScriptingInterface::loadScript);
43+ connect(_manager, &ScriptManager::doneRunning, this, &ScriptManagerScriptingInterface::doneRunning);
44+ connect(_manager, &ScriptManager::entityScriptDetailsUpdated, this, &ScriptManagerScriptingInterface::entityScriptDetailsUpdated);
45+ connect(_manager, &ScriptManager::entityScriptPreloadFinished, this, &ScriptManagerScriptingInterface::entityScriptPreloadFinished);
46+ connect(_manager, &ScriptManager::unhandledException, this, &ScriptManagerScriptingInterface::scriptManagerException);
47+}
48+
49+void ScriptManagerScriptingInterface::scriptManagerException(std::shared_ptr<ScriptException> exception) {
50+ // V8TODO: What should we actually handle here?
51+
52+
53+ // emit unhandledException(exception.thrownValue);
54+}
55+
56+QVariantMap 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+}