/proc/pid를 사용하여 C에서 런타임 메모리 사용량 검색
C에서는 런타임 시 프로그램의 메모리 사용량에 대한 정보를 얻는 것이 어려울 수 있습니다. . getrusage()를 사용한 시도에도 불구하고 포스터는 지속적으로 0 값을 발견했습니다. /proc/pid 디렉터리에 있는 파일을 쿼리하는 것과 관련된 대체 접근 방식이 있습니다.
Linux 시스템에서 /proc/pid에는 메모리 사용량을 포함한 프로세스별 정보가 포함되어 있습니다. 이 목적에 가장 신뢰할 수 있는 파일 중 하나는 /proc/self/stat입니다. 이 파일을 구문 분석하여 다음 필드를 추출할 수 있습니다.
이러한 값을 검색하려면 다음을 활용할 수 있습니다. process_mem_usage() 함수:
void process_mem_usage(double& vm_usage, double& resident_set) { // Parse /proc/self/stat ifstream stat_stream("/proc/self/stat"); stat_stream >> ... >> vsize >> rss; stat_stream.close(); // Convert to KB long page_size_kb = sysconf(_SC_PAGE_SIZE) / 1024; vm_usage = vsize / 1024.0; resident_set = rss * page_size_kb; }
main() 함수 내에서 process_mem_usage()를 사용하여 가상 메모리 사용량과 상주 세트 크기를 인쇄할 수 있습니다.
int main() { double vm, rss; process_mem_usage(vm, rss); cout << "VM: " << vm << "; RSS: " << rss << endl; }
이 접근 방식을 사용하여 , 런타임 시 현재 프로그램의 메모리 사용량 정보를 정확하게 얻을 수 있습니다.
위 내용은 Linux에서 C 프로그램의 런타임 메모리 사용량을 정확하게 검색하려면 어떻게 해야 합니까?의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!