매우 특이한 문제가있는 응용 프로그램을 실행하고 있습니다. 갑자기 관리되지 않는 메모리가 성장하고 빠르게 성장하기 시작합니다. 30 분 정도 지나면 앱이 충돌합니다..NET 응용 프로그램에서 갑자기 관리되지 않는 메모리가 급증합니다.
응용 프로그램이 관리되지 않는 DLL을 사용하고 있지 않습니다. 그것은 외부 응용 프로그램과 통신하고 있습니다. 그것은 소켓 (스트림을 통해 사용)과 WCF 스트림을 통해 읽는 중입니다.
ANTS로 프로파일 링했습니다. 관리되지 않는 메모리 사용량의 갑작스러운 변화는 매우 놀랍습니다. 영원히 완벽하게 평평한 상태를 유지하고 갑자기 상승하기 시작하고 응용 프로그램이 실패 할 때까지 꾸준한 속도로 계속 진행합니다. 관리되는 메모리의 아무 것도 보이지 않습니다.
의도적으로 관리되지 않는 코드를 사용하고 있지 않다는 것을 감안할 때 누수가 어디에서 왔는지 파악하기가 어렵습니다. 개미는 도움이되지 않습니다. 처음부터 꾸준히 증가하지 않는 문제에 대해서는 코드를 닦아 내기가 어렵습니다 (이 애플리케이션은 아주 작은 비트의 데이터로 소켓을 초당 1 회씩 핑합니다.)
다시 반복하려면이 시간 동안 응용 프로그램과 서버가 모두 유휴 상태 여야합니다. 이것은 고립 된 테스트 시스템 (서버와 클라이언트 모두)에서 실행 중이다. 클라이언트가 누수 중입니다.
이것은 도움이 될 수 있습니다. http://stackoverflow.com/questions/1180649/how-to-find-dispose-and-memory-issues-c – hatchet
특정 페이지 나 클래스로 범위를 좁힐 수 있었습니까? –
호기심에서 얼마나 빨리 성장합니까? 초당 데이터의 양이 매우 적습니다. –