4

가능한 중복은 :
Memory leak tool for C++ under WindowsWindows에서 메모리 프로파일 링을 수행하는 방법은 무엇입니까?

나는 맥 프로젝트를 수행하는 데 사용하고 난 정말 엑스 코드에 대해 즐겁게 한 가지의 프로파일 러였다. 프로파일 러의 다양한 설정으로 프로그램을 실행하여 많은 버그를 발견했습니다. 특히, 프로그램의 어느 부분이 메모리를 소비했는지를 보여줄 것입니다. 메모리를 유출했다면 나에게 보여줄 것입니다. GUI 애플리케이션으로 작업하고 있다면 할당/누수/할당 해제가 발생했을 때의 작업을 스크린 샷으로 보여줍니다.

요즘 Visual Studio를 사용하는 Windows/C++ 프로젝트에서 작업 중이며 프로젝트가 너무 많은 메모리를 소비하고 일부 메모리가 누출 될 것으로 의심됩니다. XCode를 사용하면 프로파일 러를 실행하고 무슨 일이 일어나는지 즉시 알 수 있습니다. 그러나 Visual Studio에서는 그런 것을 찾을 수 없습니다. (다소 어색한 성능 프로파일 러가 있지만 CPU 시간은 여기에서 내 관심사가 아닙니다.)

그래서 메모리 소비가 너무 많은 누수 및 코드를 검색하는 방법은 무엇입니까?

+2

@Kirill : 1 년 전 Visual Studio 2005를 대상으로 한 질문입니다.이 소프트웨어는 이제 5 년 이상되었습니다. Visual Studio 버전과 상관없이 일반적인 목적의 도구를 요구합니다. 또한 누출뿐 아니라 일반 메모리 사용량에 대해서도 묻고 있습니다. 나는 이것이 당신이 권장하는 것과 다른 질문으로 자격을 갖추어야한다고 생각합니다. – bastibe

답변

4

는 일반적으로 Application Verifier, LeakDiag, UMDH 및 Debugging Tools for Windows 참조하십시오.

모두 무료입니다.

사용 방법에 대한 안내는 Advanced Windows Debugging을 참조하십시오.

+0

UMDH는 Windows 용 디버깅 도구의 일부입니다. –

+0

@Kirill, 알아요. OP가 메모리 관련 도구를 찾고 있기 때문에 명시 적으로 언급했습니다. –

+1

UMDH가 제 베이컨을 저장했습니다. – mskfisher

1

Perfmon.exe 도구를 사용하여 시작할 것입니다 ("실행"프롬프트에서 perfmon.exe를 입력하십시오). 이 도구를 사용하면 시간이 지남에 따라 응용 프로그램을 프로파일 링하는 데 "개인 바이트", "핸들 수", "스레드 수"등과 같은 카운터를 추가 할 수 있습니다.

이 도구를 사용하여 추출 할 수있는 흥미로운 정보가 많이 있으며 MSDN에는 메모리 누수에 국한되지 않고 I/O 성능 및 기타 사항을 벤치마킹 할 수있는 많은 정보가 있습니다 게다가.

각 카운터 유형에 대해 카운터의 목적을 간략하게 설명 할 수 있음을 기억하십시오 (기본값은 꺼져 있다고 생각합니다).

관련 문제