2012-01-29 2 views
1

리눅스에서 돌아가는 C++ 어플리케이션에서 주어진 PID에 대한 메모리 작업 설정 값을 얻으려고합니다. Windows에서는이 정보를 GetProcessWorkingSetSize 기능을 사용하여 얻을 수 있습니다. 리눅스에서 호출 할 수있는 함수가 있습니까?리눅스에서 워킹 셋 정보 처리하기

답변

1

염두에 두어야 할 현명한 해결책은 /proc 파일 시스템을 통해 관련 정보에 액세스하는 것뿐입니다. 이상하게 보입니다. 프로세스가 자신의 정보를 /proc에서 읽어야 할 것 같지만,이 작업을 쉽게 할 수있는 다른 시스템 호출에 대해서는 알지 못합니다.

포함 당신은 아마 /proc/[pid]/statm에 위치한 가장 관심 정보 :

  • 전체 프로그램의 크기,
  • 상주 세트 크기를
  • 공유 페이지,
  • 텍스트 (코드) 크기,
  • 라이브러리 (Linux 2.6에서는 사용되지 않음),
  • 데이터 및 스택 크기
  • 더티 페이지 (Linux 2.6에서는 사용되지 않음).

모든 측정치는 페이지 수로 표시됩니다.

+1

'/ proc/[pid]/status'는이 정보를 사람이 읽을 수있는 형식으로 가지고 있습니다. – Nemo

+0

고맙습니다. 말된다./proc 항목을 읽는 대신 호출 할 수있는 함수가 있습니까? Sysctl은 가장 강력한 용의자이지만 특정 프로세스에 대한 메모리 정보를 얻는 방법을 찾을 수 없습니다. –