2012-03-27 3 views
1

C/C++로 프로그램을 만들고 소스 코드가 있다고 가정 해 봅시다. 프로그램 실행 중 전체 메모리를 알고 싶습니다.프로그램에 사용 된 총 공간을 어떻게 계산합니까?

누군가가 "malloc"및 "후크"에 대해 언급했습니다 사용 된 간격을 추적하는 다른 방법이 있습니까?

+3

"valgrind에 대해 뭔가"라고 말하고 싶습니다. – Tom

+2

이것은 플랫폼에 따라 다릅니다. 어떤 플랫폼을 실행하고 있습니까? –

+0

나는 이것이 일반적으로 풀 수없는 문제라고 믿는다. 프로그램이 완전히 정적 인 경우 (그리고 왜 그렇습니까?) 또는 매우 간단하지 않은 한 프로그램 풋 프린트는 변경 될 수 있습니다. – jpm

답변

2

Linux를 실행하거나 Unix 기반의 제품을 사용하는 경우 대부분 Valgrind을 사용할 수 있습니다. Valgrind는 프로그램을 실행하고 모든 메모리 할당을 가로 채고 종료 된 상태에서 통계를 인쇄합니다. 메모리 누수 및 메모리 사용을 확인하는 데 매우 유용한 도구입니다. Windows를 사용하는 경우 단서가 없습니다.

+0

특히 valgrind 도구 "대용량"은 프로그램 수명 동안 사용량을 보여주는 힙 프로파일 러입니다. – caf

0

Windows의 linux 또는 taskmgr에서 "top"명령을 사용하여 메모리 사용을 모니터링 할 수 있습니다.

0

리눅스와 같은 시스템에서는 런타임 동안 프로그램에 의해 사용되는 메모리의 총량을 찾아

/proc/self 

에서 정보를 사용할 수 있습니다. 또한 프로세스에 대한 많은 정보가 포함되어 있습니다. 자세한 내용은

man 5 proc 

을 참조하십시오.

관련 문제