2012-09-13 6 views
2

네트워크 기반 응용 프로그램에서 작업하고 있습니다. 초기화와 릴리스 사이의 메모리 사용 또는 보내기와 받기 사이의 메모리 사용과 같은 내 응용 프로그램의 여러 단계에서 메모리 사용량을 확인하고 싶습니다. 내가 봤 거든 솔루션을 찾으려고하지만 정확히 내 요구 사항과 일치하는 게시물.C++ 용 검사 점 기반 메모리 사용량 프로파일 링을 지원하는 도구가 있습니까

검사 점 기반의 메모리 프로파일 링을 Linux 및 Windows 플랫폼 모두에서 수행하는 데 도움이되는 도구 나 프로세스를 제안하십시오. 사전


다음 코드

_CrtMemState memState1; 
_CrtMemCheckpoint(&memState1); 

char *p = new char[100]; 
p = new char[100]; 
p = new char[100]; 
p = new char[100]; 
p = new char[100]; 

_CrtMemState memState2; 
_CrtMemCheckpoint(&memState2); 
_CrtMemState memStateDiff; 
_CrtMemDifference(&memStateDiff, &memState1, &memState2); 
_CrtMemDumpStatistics(&memStateDiff);' 

에서

덕분에 내가 전문 윈도우 7 얼티밋에서 Visual Studio 2010을 사용하고 나에게 출력

0 bytes in 0 Free Blocks. 
0 bytes in 0 Normal Blocks. 
0 bytes in 0 CRT Blocks. 
0 bytes in 0 Ignore Blocks. 
0 bytes in 0 Client Blocks. 
Largest number used: 0 bytes. 
Total allocations: 0 bytes. 

을 제공합니다.

+0

* 귀하의 요구 사항과 정확히 일치하는 게시물이 없습니까? 원격으로 닫은 것이 있습니까? 메모리 관리 내부는 매우 벤더에 따라 다르므로, windows-and-Linux에 대한 답변은 통하지 않을 것입니다. – WhozCraig

+1

실제로 디버그 모드로 컴파일 중이십니까? _CRTDBG_MAP_ALLOC을 정의하고 재 작성해야합니다. 그렇지 않으면 통계를 생성하는 malloc/free를 사용하지 않습니다. – Neil

답변