Skip to content

Commit e99d2b9

Browse files
committed
update(plugin-info): Show plugin memory usage
1 parent 6819723 commit e99d2b9

File tree

1 file changed

+10
-1
lines changed

1 file changed

+10
-1
lines changed

src/components/BasicComponent/src/BasicComponent.cpp

Lines changed: 10 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -13,6 +13,7 @@
1313
#include "../../Plugins/inc/plugins/LuaPlugin.h"
1414

1515
typedef const char *(*GetPlugin)();
16+
typedef double (*GetCount)();
1617

1718
const char *GetCppVersion()
1819
{
@@ -218,11 +219,19 @@ void SwiftlyPluginManagerInfo(CPlayerSlot *slot, CCommandContext context, std::s
218219

219220
std::string website = plugin->ExecuteFunctionWithReturn<const char *, GetPlugin>("GetPluginWebsite");
220221

221-
PrintToClientOrConsole(slot, "Plugin Info", "Plugin File Name: %s\n", (plugin->GetName() + WIN_LINUX(".dll", ".so")).c_str());
222+
PrintToClientOrConsole(slot, "Plugin Info", "Plugin File Name: %s\n", plugin->m_path.c_str());
222223
PrintToClientOrConsole(slot, "Plugin Info", "Name: %s\n", plugin->ExecuteFunctionWithReturn<const char *, GetPlugin>("GetPluginName"));
223224
PrintToClientOrConsole(slot, "Plugin Info", "Author: %s\n", plugin->ExecuteFunctionWithReturn<const char *, GetPlugin>("GetPluginAuthor"));
224225
PrintToClientOrConsole(slot, "Plugin Info", "Version: %s\n", plugin->ExecuteFunctionWithReturn<const char *, GetPlugin>("GetPluginVersion"));
225226
PrintToClientOrConsole(slot, "Plugin Info", "URL: %s\n", website == "" ? "Not Present" : website.c_str());
227+
if (plugin->GetPluginType() == PluginType_t::PLUGIN_LUA)
228+
{
229+
LuaPlugin *plg = (LuaPlugin *)plugin;
230+
LuaFuncWrapper wrapper(plg->GetLuaState()->Get("collectgarbage"));
231+
wrapper.PrepForExec();
232+
luacpp::PushValues(wrapper.GetML(), "count");
233+
PrintToClientOrConsole(slot, "Plugin Info", "Memory Usage: %.4fMB\n", (wrapper.ExecuteWithReturn<double>("collectgarbage", 1) / 1024));
234+
}
226235
}
227236

228237
void SwiftlyPluginManagerUnload(CPlayerSlot *slot, CCommandContext context, std::string plugin_name)

0 commit comments

Comments
 (0)