문제

컨텍스트 : 우리는 WPF 응용 프로그램의 신속한 전달을위한 프레임 워크를 구축하고 있습니다. 이 프레임 워크는 Autofac을 IOC 컨테이너로 사용하고 Prism V1의 영역도 사용합니다. 우리는 Microsoft의 병렬 확장으로 작업을 예약하고 있습니다.

우리는 다음과 같은 문제에 직면하고 있습니다. 빈 뷰로 응용 프로그램을 부팅 할 때 (따라서 지역 및 자리 표시 자 제어가있는 쉘만) 메모리는 약 60 초 동안 안정적으로 유지되며 그 후에 4KB로 약 1 초마다 증가합니다. 그 후 8KB. 따라서 3 초마다 16KB가 메모리 압력에 추가되었습니다.

우리가 누출을 추적하려고했던 것은 무엇입니까? 나는 dottrace를 사용하여 시작했지만 30 분 간격으로 2 개의 스냅 샷 사이의 차이를 볼 수 없었습니다. 더 많은 정보를 제공하기 때문에 .NET Memory Profiler로 이동했지만 다시 스냅 샷 사이에 차이점을 볼 수 없습니다. 우리는 여러 객체가 생성되지만 델타가 0의 델타로 만들어 졌다는 것을 알 수 있습니다. 그래서 나는 Windbg로 옮겼지만 결과는 동일합니다.

또 다른 이상한 점은 Sysinternals DBGVW를 시작할 때 응용 프로그램에서 전화가 이루어지지 않는다는 것입니다.

범인이 무엇인지/누구인지 알아 내기 위해 다음에 무엇을 시도 할 수 있는지에 대한 제안이 있습니까?

도움이 되었습니까?

해결책 2

결과적으로 WPF 내부의 버그였으며 해결 방법은 첫 번째 객체 또는 무언가로 창 핸들러를 만드는 것이 었습니다. 감사합니다

다른 팁

관리되지 않는 누출을 찾고 있고 Visual Studio를 사용하는 경우 내장 된 CRT 기능을 사용하여 놀랍도록 유용한 정보를 얻을 수 있습니다.

보다 관련 질문에 대한 답

라이센스 : CC-BY-SA ~와 함께 속성
제휴하지 않습니다 StackOverflow
scroll top