프로그램이 사용한 메모리크기를 체크하는 방법

auditory의 이미지

프로그램이 run time에서 사용하는 메모리의 사이즈를

알 수 있는 방법이 있을까요?

ps로 주기적으로 검사하는 방법말고,

최종적으로 프로그램이 시작해서 끝날때까지 사용한 메모리의 피크치를

알 수 있는 방법이 있을까요?

Windows환경도 좋고, Linux 환경에서도 좋습니다..

(다른 OS간 비교는 아니고, 비슷한 두 프로그램을 같은 환경에서 비교하고자합니다.)

terzeron의 이미지

해당 프로그램이 자체적으로 하려면 getrusage() 함수를 사용하시고,
외부에서 관찰하려면 pmap을 사용하시면 됩니다.

/proc에서 statm이나 stat 파일을 이용해서 메모리 크기를 확인할 수도 있습니다.

cinsk의 이미지


http://kldp.org/node/46776

추가로, valgrind의 massif도 써 보시길.

$ valgrind --tool=massif --stacks=yes ./a.out ARGUMENTS...
$ ms_print massif.out.XXXX

--
C FAQ: http://www.eskimo.com/~scs/C-faq/top.html
Korean Ver: http://www.cinsk.org/cfaqs/

seungje의 이미지

각각의 프로세스에 대한 CPU 사용량부터 메모리 사용량, 최대 메모리 사용량, 커밋 크기, 페이징 풀, 비페이징 풀, 페이지 폴트, 각각의 변화량 등등을...

작업관리자에서 확인할 수 있습니다.

...