C에서 실행 중인 프로그램의 메모리 사용량을 모니터링하는 방법
런타임 중 메모리 소비를 예측하는 것은 애플리케이션 성능을 최적화하고 메모리 누수를 방지하는 데 중요합니다. . C는 특정 요구 사항을 해결하면서 메모리 사용량 정보를 검색하는 다양한 접근 방식을 제공합니다.
자주 사용되는 방법 중 하나는 프로세스의 리소스 사용량에 대한 데이터를 검색하는 getrusage 함수를 활용하는 것입니다. 그러나 경우에 따라 사용자는 이 접근 방식을 사용하여 정확한 결과를 얻는 데 어려움을 겪습니다.
Linux 환경을 위한 대체 솔루션
Linux 시스템의 경우 대체 전략은 내부 파일에 액세스하는 것입니다. /proc/pid 디렉토리. 각 파일은 시스템 프로세스와 관련된 다양한 정보를 제공합니다. 다음 코드 조각은 가상 메모리 크기(VM)와 상주 세트 크기(RSS)를 모두 킬로바이트(KB) 단위로 가져오는 방법을 보여줍니다.
#include <unistd.h> #include <ios> #include <iostream> #include <fstream> #include <string> void process_mem_usage(double& vm_usage, double& resident_set) { std::ifstream stat_stream("/proc/self/stat", std::ios_base::in); unsigned long vsize; long rss; stat_stream >> vsize >> rss; // Skipping irrelevant fields long page_size_kb = sysconf(_SC_PAGE_SIZE) / 1024; vm_usage = vsize / 1024.0; resident_set = rss * page_size_kb; }
사용 예
이 방법을 활용하려면 process_mem_usage 함수를 프로그램에 통합하고 호출하여 검색하세요. 현재 메모리 사용량:
int main() { double vm, rss; process_mem_usage(vm, rss); std::cout << "VM: " << vm << "; RSS: " << rss << std::endl; }
이 접근 방식은 신뢰할 수 있는 메모리 사용량 추정치를 제공하여 다른 방법에서 발생하는 제한 사항을 보완합니다.
위 내용은 Linux에서 C 프로그램의 메모리 사용량을 어떻게 모니터링할 수 있습니까?의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!