Pick resident set memory for current memory usage on linux

* The virtual size can be much bigger than the actual amount of memory in use
  that we care about.
This commit is contained in:
baldurk
2021-01-22 14:20:11 +00:00
parent 019d75cd0d
commit 5ce6093661
4 changed files with 16 additions and 8 deletions
@@ -186,6 +186,8 @@ uint64_t Process::GetMemoryUsage()
char line[512] = {};
fgets(line, 511, f);
FileIO::fclose(f);
uint32_t vmPages = 0;
int num = sscanf(line, "%u", &vmPages);
+2
View File
@@ -211,6 +211,8 @@ uint64_t Process::GetMemoryUsage()
char line[512] = {};
fgets(line, 511, f);
FileIO::fclose(f);
uint32_t vmPages = 0;
int num = sscanf(line, "%u", &vmPages);
+6 -4
View File
@@ -675,11 +675,13 @@ uint64_t Process::GetMemoryUsage()
char line[512] = {};
fgets(line, 511, f);
uint32_t vmPages = 0;
int num = sscanf(line, "%u", &vmPages);
FileIO::fclose(f);
if(num == 1 && vmPages > 0)
return vmPages * (uint64_t)sysconf(_SC_PAGESIZE);
uint32_t rssPages = 0;
int num = sscanf(line, "%*u %u", &rssPages);
if(num == 1 && rssPages > 0)
return rssPages * (uint64_t)sysconf(_SC_PAGESIZE);
return 0;
}
+6 -4
View File
@@ -39,11 +39,13 @@ uint64_t GetMemoryUsage()
char line[512] = {};
fgets(line, 511, f);
uint32_t vmPages = 0;
int num = sscanf(line, "%u", &vmPages);
fclose(f);
if(num == 1 && vmPages > 0)
return vmPages * (uint64_t)sysconf(_SC_PAGESIZE);
uint32_t rssPages = 0;
int num = sscanf(line, "%*u %u", &rssPages);
if(num == 1 && rssPages > 0)
return rssPages * (uint64_t)sysconf(_SC_PAGESIZE);
return 0;
}