2009-04-09 2 views
1

나는 (활발히 달리고있는 동안) 시간이 지남에 따라 점점 더 많은 메모리를 계속 사용하는 어플리케이션을 가지고 있지만, 누출은 없다. 그래서 나는 프로그램이 완전히 틀린 일을하고 있지 않다는 것을 안다. 그것은 쉽게 발견 될 것이다.Windows에서 메모리 할당을 측정하는 데 유용한 도구는 무엇입니까?

대신 문제를 추적하기 시작할 수 있도록 할당을 추적하고 싶습니다. 그리고 Mac에서는 어떤 객체가 할당되었는지에 대한 자세한 프로필을 제공하는 Instruments를 사용합니다. 나는 사용한다?

현재 저는 VS2005를 사용하는 Windows XP에서 C/C++로 작업하고 있습니다. 따라서이 설정을위한 모든 도구는 유용 할 수 있으며 필요에 따라 구매를 완료하는 데 약간의 시간이 걸리기 때문에 무료이거나 최소한 몇 주간의 평가판을 제공 할 수있는 도구가 있어야하며 기한이 있습니다.

감사합니다.

편집 : 나는 VLD를 사용하고, 그래서 프로그램이 더 누출이없는 알고 있지만, 그것을 반환 필요한 것보다 더 많은 메모리를 잡아 먹고, 그리고 것 같다, 그래서 할당하지 누수를 추적 할 필요가.

답변

2

메모리 검사기 당신을 위해 이상적 일 것이다 다음 디버그 힙 함수를 사용하려면 프로그램에서 다음 명령문을 포함한다. 그것은 어쨌든 작동 :) 그 이후로 많이 변경되지 않았습니다처럼 http://www.softwareverify.com/cpp/memory/index.html

+0

멋진 도구! 내가 필요한 것, 감사합니다. –

1

Glowcode is here. 세계에서 가장 최악의 사용자 인터페이스를 가지고 있습니다. 당신이 인내심을 가지고 공포심을 헤쳐 나갈 수있는 인내심이 있다면, 내부 구조는 그걸 가지고 있습니다. 21 일 무료 평가판이 있습니다. 나는 그것이 생명의 은인이라는 것을 알았지 만, 정말로 그 버그를 찾고 싶다. 메모리를 누수를 확인하기위한 기본 도구

메모리 누수 감지

활성화

+0

는 Glowcode를 시도 후, 나는 약 4 년 전에 그것을 사용하지만 보인다했던 기억하지만, 카노푸스 MemoryValidator은 오히려 훨씬 친숙한 UI –

+0

있다 그것은 더 나 빠졌다. 나는 그런 생각이 듭니다. 나는 디버거 스톡홀름 증후군을 가지고 있다고 생각한다. –

0

비주얼 스튜디오는 디버거와 CRT 디버그 힙 함수입니다.

#define CRTDBG_MAP_ALLOC 
#include <stdlib.h> 
#include <crtdbg.h> 

http://msdn.microsoft.com/en-us/library/e5ewb1h3(VS.71).aspx

+0

실제 메모리 누수가 없다면 도움이 될 것인가? 나는 그가 시간이 지남에 따라 메모리 사용량이 증가하는 상황에 대해 이야기하고 있다고 생각합니다. 반드시 누출 일 필요는 없습니다. –

+0

미안하지만 기억에 대해 말하는 것이 아닙니다. 프로그램이 끝나면 완벽하게 청소됩니다. 문제는 할당 및 할당을 계속하지만 종료 할 때까지 메모리를 리턴하지 않는다는 것입니다. –

관련 문제