2011-02-08 2 views
3

다음은 작업 관리자 프로세스 탭을 통해 모니터링하는 winforms 응용 프로그램 시나리오입니다.Winform 응용 프로그램, 창이 강제로 가비지 수집을 최소화합니까?

처음 실행시 최대 61,000K (초기 데이터 그리드 및 데이터로드)까지 스핀합니다. 아무 것도 건드리지도 않고 응용 프로그램을 최소화하면 Mem 사용량이 1,380K로 떨어집니다. 응용 프로그램을 복원 할 때 최대 5.8K까지 회전합니다.

내 질문에 문제의 응용 프로그램에 초점이 맞지 않아 리소스를 정리하기 위해 내부 메시지를 보내야합니까?

첫 번째 응용 프로그램은 VB.NET 일 것이라고 생각하지만 내 주 C# winform 응용 프로그램에서 동일한 동작을 관찰했습니다.

+0

다음 중 중복 될 수 있습니다. http://stackoverflow.com/questions/4863016/is-it-true-that-in-net-garbage-collector-gets-called-when-you-minimize-the-progr –

+0

네, 다른 질문은 멋지게 다루고 있습니다. 미안 해요. 입력하는 동안 추천 된 속임수를 검토 할 때 보지 못했습니다. 답변이 있기 때문에 삭제할 수 없습니다. 닫기로 투표했습니다. – curtisk

+0

* .NET Framework를 대상으로하는 응용 프로그램뿐 아니라 모든 응용 프로그램. 한스의 대답은 여기에 좋습니다. 중복 질문에 대한 답변에는 많은 추가 정보가 있습니다. –

답변

7

잘못된 메모리 통계를보고 있습니다. 이것이 실제 메모리에 매핑되는 가상 메모리의 양인 "작업 집합"입니다. 램. Windows는 기본 창이 최소화되는 것을 감지하면 작업 집합을 적극적으로 트리밍합니다. 사용자가 잠시 동안 프로그램을 사용하지 않을 것이므로 다른 프로세스를위한 공간을 만들기 위해 RAM의 페이지를 분리합니다. 포커스를 되돌려 놓으면 Windows는 페이지가 실제로 필요한 RAM으로 다시 매핑합니다. 앱이 유휴 상태 일 때 많은 앱이 아닙니다.

가비지 수집은 가상 메모리 작업입니다.

관련 문제