2011-06-12 3 views
5

IIS의 웹 응용 프로그램에 대해 여러 개 캐시해야하는 개체가 있으므로 각 인스턴스에서 사용하는 메모리 양을 분석하고 있습니다. 왜 GC.GetTotalMemory()와 CLR Profiler 번호간에 큰 차이가 있습니까?

나는 작은 exe을 쓴 내가 전에 건설 후 GC.GetTotalMemory(true)를 호출하고 차이가 약 335k하지만 CLR profiler에서 분석 경우 메모리의 22메가바이트이 이해가되지 않습니다 개체에 사용되는 나에게 보여줍니다.

CLR 프로파일 러에서 무엇을 잘못 해석합니까?
개별 객체 크기를 보려면 프로파일 러를 어디서 확인해야합니까?

+0

CLR 프로필은 비용을 지불 한만큼 가치가 있습니다. 시간 낭비가 없으면 시간을 낭비하지 마십시오. –

+0

인스턴스를 하나만 만들었습니까? 인스턴스를 여러 개 만들면 어떻게 될까요? 나는 당신이 그것을 모두 채우기 위해 충분한 인스턴스를 만들 때까지 22MB가 안정 상태를 유지할 것이라는 것을 짐작할 만하다. (그래서 65 개의 객체들 이후로 44Mb로 점프 할지도 모른다)? –

답변

1

MSDN에 따르면 : 가비지 수집기는 액세스 할 수없는 메모리가 모두 수집되는 것을 보증하지 않습니다.

look here

CLR 프로파일이 할당 된 모든 메모리를 나타내고;

GC.GetTotalMemory (false)를 사용하면 어떻게됩니까?

관련 문제