2017-11-26 18 views
-1

C# (WPF) 응용 프로그램이 엄청난 양의 메모리를 사용하고 있다고 말하면서 작업 관리자에 문제가 있습니다. (하룻밤 남았을 때 5-6GB까지 보았습니다.)하지만 Sci Tech 메모리 프로필러 VS one)은 절정기에 200 - 300MB를 사용하고 있다고 말합니다.작업 관리자가 1.3GB의 메모리를 사용하고 있지만 Sci Tech MemProfiler는 ~ 200MB라고 말하고 있습니까?

현재 해당 응용 프로그램이 많은 메모리 할당을 수행하고 가비지 수집기가 사용량이 많은 것으로 보이는 최적화 작업을 수행하고 있습니다.

하지만 왜 두 메모리 사용 보고서가 너무 격렬합니까? 이것도 우리가 걱정해야 할 것입니까? 고객은 아마 그것을 알아 채고 공황 상태에 빠져서 왜 문제가되지 않는다면 왜 그렇게 발산했는지의 바닥까지 도달하면 좋을 것입니다.

Task Manager Reported Memory Usage

Snap Shot of memory usage from SciTech Profiler

+0

.NET 응용 프로그램은 관리되는 리소스와 네이티브 리소스를 모두 사용합니다. 따라서, 작업 관리자가 두 가지를 합한 것으로보고하는 반면, Sci Tech는 관리 대상에만 초점을 맞추는 반면, 둘은 서로 다른 사용법을 알리는 것이 좋습니다. 보고 된 숫자에 대한 자세한 내용은 Sci Tech의 설명서를 확인하십시오. –

+0

그걸 설명 할 수는 있지만, 시스템에서 관리되지 않는 것을 사용하지는 않는다고 생각합니다. – user2939408

답변

-1

이 일어나고 있지만, 일부 추가 조사 후 실제로 아주 행복하게 미래의 할당에 사용하기 위해 메모리에 걸 것이다 .NET 런타임을 나타납니다 것입니다 있는지 확실하지 않습니다 OS가 메모리로 푸시 될 때까지 OS로 되돌려 놓는 것이 아니라.

메모리가 Gen # 2 할당 힙에 들어가기 시작했지만 CPU가 많은 작업을 수행하기 때문에 바쁜 시간에 Gen # 2 가비지 수집이 실행되지 않습니다.

그래서 기계가 Gen # 2 GC를 수행해야한다고 결정할 때까지 할당이 시간이 지남에 따라 커지고 많은 양을 비 웁니다.

어쨌든 우리의 작업 이론입니다.