Added RAM usage to linux overlay.

This commit is contained in:
Tom Lally 2022-09-01 17:01:31 +01:00
parent 2d30edcbc6
commit feefdf5fc4
4 changed files with 27 additions and 12 deletions

View file

@ -585,16 +585,6 @@ static void UpdateStats_CpuPerCore()
}
}
static void UpdateStats_RamUsage()
{
#if BOOST_OS_WINDOWS
PROCESS_MEMORY_COUNTERS pmc{};
pmc.cb = sizeof(pmc);
GetProcessMemoryInfo(GetCurrentProcess(), &pmc, sizeof(pmc));
g_state.ram_usage = (pmc.WorkingSetSize / 1000) / 1000;
#endif
}
void LatteOverlay_updateStats(double fps, sint32 drawcalls)
{
if (GetConfig().overlay.position == ScreenPosition::kDisabled)
@ -604,7 +594,9 @@ void LatteOverlay_updateStats(double fps, sint32 drawcalls)
g_state.draw_calls_per_frame = drawcalls;
UpdateStats_CemuCpu();
UpdateStats_CpuPerCore();
UpdateStats_RamUsage();
// update ram
g_state.ram_usage = (QueryRamUsage() / 1000) / 1000;
// update vram
g_renderer->GetVRAMInfo(g_state.vramUsage, g_state.vramTotal);

View file

@ -14,3 +14,5 @@ uint32_t GetProcessorCount();
void QueryProcTime(uint64_t &out_now, uint64_t &out_user, uint64_t &out_kernel);
void QueryProcTime(ProcessorTime &out);
void QueryCoreTimes(uint32_t count, ProcessorTime out[]);
uint64_t QueryRamUsage();

View file

@ -2,6 +2,7 @@
#include "util/ProcessorTime/ProcessorTime.h"
#include <unistd.h>
#include <sys/time.h>
#include <sys/times.h>
#include <sys/resource.h>
@ -41,4 +42,16 @@ void QueryCoreTimes(uint32_t count, ProcessorTime out[])
}
}
uint64_t QueryRamUsage()
{
long page_size = sysconf(_SC_PAGESIZE);
std::ifstream file("/proc/self/statm");
file.ignore(std::numeric_limits<std::streamsize>::max(), ' ');
uint64_t no_pages;
file >> no_pages;
return no_pages * page_size;
}
#endif

View file

@ -47,4 +47,12 @@ void QueryCoreTimes(uint32_t count, ProcessorTime out[])
}
}
uint64_t QueryRamUsage()
{
PROCESS_MEMORY_COUNTERS pmc{};
pmc.cb = sizeof(pmc);
GetProcessMemoryInfo(GetCurrentProcess(), &pmc, sizeof(pmc));
return pmc.WorkingSetSize;
}
#endif