코드의 영역은 메모리를 많이 사용하는 발견하기위한 좋은 도구/기술은 무엇입니까? 리눅스에서 valgrind에 대해 언급 한 비슷한 질문을 보았지만 Visual Studio 2010으로 개발 된 Windows 응용 프로그램에 대해서는 그렇지 않습니다.디버그 높은 메모리 사용
답변
성능 마법사는 리소스 사용에 대한 매우 상세한보기를 허용하며 높은 메모리 부하. 마법사를 시작하려면 Visual Studio의 분석 메뉴를 클릭 한 다음 성능 시작 마법사를 클릭하십시오. 전체 시험을 실행하려면 프리미엄 버전 이상이 필요할 수 있습니다.
또한 당신에게 할당 된 개체의 목록과 할당 프로파일을 사용하는 경우 각 개체가 생성 된 곳의 호출 스택을 제공 할 수 있습니다 AQTime있다.
다른 옵션은 수동으로 코드로 개체에 대한 인스턴스 카운터 코드를 인스트루먼트 등이 있습니다. 이상적이지는 않지만 특히 프로파일 링 도구가 응용 프로그램을 실행하지 못하는 경우 (예 : 메모리 부족 또는 계측 실패 등) 유용합니다.
대개 매우 명백한 방식으로 표시되지 않는 것은 메모리 조각화입니다. 많은 수의 큰 개체가 있고 많은 수의 작은 개체가 할당되어 있고 서로 다른 순서로 자주 해제되는 경우 쉽게 발생할 수 있습니다. 가능한 경우 이러한 개체 중 일부에 대해 풀을 사용하는 것이 가치가 있으며 일부 상황에서는 메모리 사용과 성능에 큰 영향을 줄 수 있습니다.
VS2010에 포함 된 Microsoft CRT는 누출 감지 기능을 강력하게 지원합니다. crtdbg.h 헤더에서 사용할 수 있으며이를 사용하려면 MSDN library article에 잘 설명되어 있습니다. 즉 너무 많은 어려움이 있다면
다음 Windows 용 디버깅 도구 패키지는 매우 유용 할 수 있습니다. UMHD (User Mode Heap Debugger) utility은 프로그램을 변경하지 않고 누출을보고 할 수 있습니다.
감사합니다. 메모리 누수가 심각한 문제인지 확인해 보겠습니다. 그렇지 않으면 코드의 어느 부분이 메모리를 가장 많이 사용하는지 파악하기 위해 메모리 누수를 디버깅하지 않습니다. – pauld
- 1. 높은 메모리 사용
- 2. NodeJS : 메모리 사용 디버그
- 3. 단기간의 높은 VM 메모리 사용 효과 (Windows)
- 4. 높은 메모리 대 낮은 메모리
- 5. ehcache를 메모리 데이터 저장소로 사용 - 높은 메모리 사용량
- 6. std :: unordered_map 매우 높은 메모리 사용량
- 7. ActiveMQ를 높은 메모리 소비
- 8. Java 높은 메모리 사용량
- 9. SQL 높은 공유 메모리
- 10. CRT 디버그 힙에서 높은 물 수 리셋
- 11. Eclipse 디버그 메모리 사용량
- 12. 높은 iOS 메모리 사용률은 무엇입니까?
- 13. 실행중인 서비스에서 높은 메모리 사용량이보고되었습니다.
- 14. 매우 높은 메모리 사용 - iPad에서 큰 이미지를 처리하는 방법?
- 15. NIO에서 소켓을 사용할 때 높은 메모리 사용 방지
- 16. SQL Server 2005의 높은 메모리 사용 및 성능 문제
- 17. Windows Form 응용 프로그램 시작 숨김 - 높은 메모리 사용?
- 18. .NET MVC/Entity Framework 응용 프로그램에서 지나치게 높은 메모리 사용
- 19. 크롬/파이어 폭스 (지뢰밭)에서의 자바 메모리 사용 및 디버그
- 20. Valgrind로 PHP 메모리 손상 디버그
- 21. android ndk와 메모리 손상 디버그
- 22. MSVC에서 디버그 메모리 덮어 쓰기
- 23. AFNetworking 메모리 사용량 스파이크를 디버그
- 24. 리눅스에서 디버그 메모리 누수가 발생했습니다.
- 25. HttpWebClient에는 MonoTouch에서 높은 메모리 사용이 있습니다.
- 26. 디버그 중 XCode 5의 메모리 그래프/차트
- 27. 디버그 중 디버그 사용 안함/금지 (Eclipse)
- 28. Xcode 메모리 사용
- 29. 더 낮은 메모리 주소로 스택 메모리 주소가 더 높은 주소
- 30. 느리게 실행 중, 높은 메모리 사용량
이미이 고려 모르지만, Windows 응용 프로그램은 종종 와인을 사용 Valgrind의에서 실행할 수 있습니다. –