프로세스 별 및 시스템 별 메모리 사용 정보를 얻고 싶습니다. Windows에서는 꽤 쉽습니다. GetProcessMemoryInfo 및 GlobalMemoryStatusEx는 이러한 작업을 매우 쉽고 매우 쉽게 수행합니다. 예를 들어, GetProcessMemoryInfo는 주어진 프로세스의 "PeakWorkingSetSize"를 제공합니다. GlobalMemoryStatusEx는 시스템 전체의 사용 가능한 메모리를 반환합니다.Linux/Windows의 C/C++ 메모리 사용 API
그러나 리눅스에서해야합니다. GetProcessMemoryInfo 및 GlobalMemoryStatusEx와 동일한 Linux 시스템 API를 찾으려고합니다.
'getrusage'가 발견되었습니다. 그러나 구조체 rusage의 최대 'ru_maxrss'(상주 세트 크기)는 0으로 구현되지 않았습니다. 또한 시스템 전체에 사용 가능한 메모리를 확보 할 생각이 없습니다.
현재 해결 방법은 "system ("ps -p % my_pid -o vsz, rsz ");"입니다. 수동으로 파일에 기록하십시오. 그러나 데이터를 처리하는 것이 더럽고 편리하지 않습니다.
이 목적을 위해 멋진 Linux API를 알고 싶습니다.
특정 프로세스에서 사용하는 메모리 양 또는 특정 스레드에서 사용중인 메모리 양을 원하십니까? – ChadNC
@ChadNC, 나는 프로세스와 시스템마다 하나씩 원했고, 나는이 문제를 해결했다. – minjang