2009-11-24 2 views
0

Visual Studio 2005에서 실행중인 asp.net 2.0 웹 응용 프로그램을 가지고 있습니다. aspnet_wp.exe의 초기 메모리 소비는 약 2K입니다. GridView 및 다른 컨트롤을 가진 다른 페이지를 탐색 할 때 크기가 커지고 있습니다 (약 47K).aspnet_wp.exe에 의한 메모리 사용

제 질문은 브라우저를 닫으면 메모리가 해제되지 않거나 심지어 VS2005를 닫더라도 메모리 소비가 동일하다는 것입니다.

열려있는 모든 db 연결을 점검하고 조심스럽게 닫았지만 여전히 문제가 있습니다. 어떤 사람들이 왜 이런 일이 일어나고 있는지 그리고 그 해결책은 무엇인지 안내해 줄 수 있습니까?

귀중한 시간을 공유해 주셔서 감사합니다.

답변

1

브라우저를 닫으면 클라이언트 측에서만 작업이 수행됩니다. ASP.NET 작업자 프로세스는 새 호스트를 기다리는 활성 상태로 유지되는 서버 프로세스입니다. 나는 그 모든 것들이 어떻게 작동하는지에 대해 많이 알지는 못한다고 주장하지만, 서버 프로세스가 특히 라이브러리를 메모리에로드하여 다른 클라이언트 연결에 사용 가능하게 만들면 모든 것을 버릴 수는 없다고 말할 수 있습니다.

+0

고마워요! 당신은 절대적으로 맞습니다,하지만 작업 관리자에서 프로세스 트리를 닫으면 모든 활성 db 연결이 닫히는 것으로 나타났습니다. 그래서 내 생각에 이것은 연결 스풀링 때문에 일어날 수 있습니다. – IrfanRaza

+0

그것이 효과가 있다면 대답을 수락하십시오 :). 연결과 관련된 시간 제한이 있으며 IIS 프로세스는 연결 시간이 초과 될 때까지 해당 연결을 계속 유지합니다. 당신은 어쨌든 그들을 다 마쳤을 때 명시 적으로 닫아야합니다. – bdwakefield

1

브라우저를 닫거나 VS2005를 닫지 않아도 메모리를 수집하기 위해 가비지 수집을 트리거 할 필요가 없습니다. 얼마나 오래 메모리가 유지됩니까? 5 분 10 초가 지나면 어떻게 될까요?

+0

감사합니다. J.W.! 그래서 가비지 콜렉션과 관련된 문제를 의미합니까, 아니면 GC를 명시 적으로 호출해야합니까? – IrfanRaza

+0

GC가 가비지 수집을 시작해야한다고 판단되면 문제가 발생하지 않습니다. GC를 완전히 이해하지 못한다면 GC를 명시 적으로 호출하지 마십시오. –

1

AppDomains를 완전히 종료하려면 최대 30 초가 소요될 수 있습니다. 즉, 호스트 서버를 종료하면 모든 메모리가 프 로세스에서 해제되는 데 최대 30 초가 걸릴 수 있습니다.

+0

고마워요 앤드류! 그러나 10 분을 기다린 후에도 크기는 여전히 동일합니다. – IrfanRaza