К сожалению, независимого от платформы способа не существует. Если вы хотите измерить использование памяти вне программы, не меняя ее код, тогда вам необходимо использовать специальные c инструменты ОС.
В Linux: В Linux, как узнать сколько памяти используют процессы? . По сути, он говорит вам разобрать /proc/{the process id of the running program}/smaps
. Вариант этого может работать в других системах с файловой системой /proc/
.
В Windows: Как использовать GetProcessMemoryInfo в C ++? . Для этого требуется HANDLE
процесса, который вы можете получить с помощью
handle = OpenProcess(PROCESS_QUERY_INFORMATION | PROCESS_VM_READ,
FALSE, process_id);
PROCESS_MEMORY_COUNTERS couters;
GetProcessMemoryInfo( handle, &counters, sizeof(counters));
CloseHandle(handle);
now do something with counters ....