C를 사용하여 런타임 시 메모리 사용량 가져오기
이 문서에서는 런타임 시 메모리 사용량 정보, 특히 VIRT 및 RES를 얻는 방법을 조사합니다. C .
시도한 접근 방식과 과제
이 데이터를 검색하기 위해 getrusage 기능을 활용하려는 시도는 지속적으로 0의 결과를 가져왔습니다.
/proc 파일을 사용한 대체 접근 방식
Linux 시스템의 경우 "/proc/pid" 파일에서 데이터를 읽는 것은 ioctl()에 대한 안정적인 대안을 제공합니다. 다음은 이 접근 방식을 보여주는 C 구문이 포함된 스니펫입니다.
#include <unistd.h> #include <ios> #include <iostream> #include <fstream> #include <string> void process_mem_usage(double& vm_usage, double& resident_set) { vm_usage = 0.0; resident_set = 0.0; ifstream stat_stream("/proc/self/stat", ios_base::in); string vsize, rss; stat_stream >> vsize >> rss; stat_stream.close(); long page_size_kb = sysconf(_SC_PAGE_SIZE) / 1024; vm_usage = stod(vsize) / 1024.0; resident_set = stod(rss) * page_size_kb; } int main() { double vm, rss; process_mem_usage(vm, rss); std::cout << "VM: " << vm << "; RSS: " << rss << std::endl; }
위 내용은 런타임 시 C 프로그램 메모리 사용량(VIRT 및 RES)을 효율적으로 모니터링하려면 어떻게 해야 합니까?의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!