메모리 누수를 감지 할 수 있도록 정적 소스 또는 실행중인 프로그램을 분석하는 데 유용한 무료 도구가 있습니까?.NET 응용 프로그램의 메모리 누수 테스트
저는 몇 가지 Windows 서비스를 구축했으며 몇 주 동안 계속 실행하면 메모리를 소비하지 않도록하고 싶습니다.
메모리 누수를 감지 할 수 있도록 정적 소스 또는 실행중인 프로그램을 분석하는 데 유용한 무료 도구가 있습니까?.NET 응용 프로그램의 메모리 누수 테스트
저는 몇 가지 Windows 서비스를 구축했으며 몇 주 동안 계속 실행하면 메모리를 소비하지 않도록하고 싶습니다.
무료 인의 요구 사항을 충족하지만, 레드 게이트에 의해 하나 거기에 내가 생각하는 제안 가치가되지 않습니다 - ANTS Memory Profiler
내가 재판 (일부 전에 도구를 사용했습니다, 일부 우리는했습니다 구입) 매우 좋은 것으로 나타났습니다.
Redgate Ants Performance Profiler 도움이 될 수 있습니다. 무료는 아니지만 ... 서비스가 작동하기에 충분할 수있는 14 일 평가판이 있습니다.
Profile Sharp는 서비스 실행 및 성능 모니터를 사용하여 서비스의 메모리 사용에 대한 정보를 수집하자 .NET
을위한 무료 (오픈 소스) 성능과 메모리 프로파일 러입니다. 또한 관리되지 않는 리소스를 사용하는 경우 IDisposable
을 사용하여 코드가 이러한 리소스를 적절하게 삭제해야합니다. 관리되지 않는 환경에서는 단순히 포인터를 놓는 것을 잊어서 누출을 쉽게 만들 수 있지만 관리되는 환경에서는 불가능합니다. 그러나 새 오브젝트를 계속 할당하고 가비지 수집이 불가능하도록 참조를 유지하면 서비스에 더 많은 메모리가 필요합니다.
저는 Microsoft의 CLR Profiler을 약간의 성공을 거두었습니다. 모든 혜택을 누리려면 documentation을 반드시 읽으십시오.
Windows 작업 관리자를 사용하여 적어도 서비스의 메모리 누수를 감지 할 수 있다는 것을 잊지 마십시오.
는 프로세스 탭으로 전환 할 객체를 추적하기 위해 작업 관리자를 사용하는 또 다른 방법은, 다음 보기에>열 선택 가서 사용자가 개체 확인하고 GDI는 아마도 유용 (GDI를하지 개체 당신은 서비스를 실행하고 있기 때문에 당신은 유용하다고 느낄 수 있습니다.)
나는 http://memprofiler.com/을 추천 할 수 있지만 무료는 아닙니다.
가비지 콜렉터가 결국 그걸 가져 가지 않을까요? – James
주변에 대한 언급이있는 것은 아닙니다. 예 : 이벤트가있는 객체를 만든 다음 이벤트 처리기를 연결하면 발생할 수 있습니다. 이벤트 처리기를 제거하지 않으면 개체가 정리되지 않습니다. –
누설 유형은 그가 주변에 놓여있는 객체에 대한 참조를 유지하면서 크기가 계속 커지는 객체입니다. 또한 그는 자신의 코드에서 발견하려고하는 관리되지 않는 리소스와 관련된 버그를 가질 수 있으며 .NET 런타임에는 적어도 하나의 버그가있었습니다 (CopyFromScreen 메서드가 매번 핸들을 누수 함). 그래서 나는 그런 것들을 확인하고 싶어. –