문제

런타임에 특정 클래스가 .NET에서 사용하는 메모리 양을 확인하는 방법을 찾으려고 합니다.사용 Marshal.SizeOf() 값 유형에서만 작동하므로 종료되었습니다.클래스가 사용하는 메모리 양을 정확히 확인할 수 있는 방법이 있나요?

도움이 되었습니까?

해결책

나는 최근에야 이러한 유형의 조사를 시작했지만 메모리 프로파일러가 애플리케이션 내의 객체 인스턴스에 관해 매우 자세한 정보를 제공할 수 있다는 것을 발견했습니다.

시도해 볼 가치가 있는 몇 가지는 다음과 같습니다.

다른 팁

나는 메모리 프로파일러가 당신이 찾고 있는 정보를 얻는 가장 쉬운 방법이라는 데 동의합니다.앞서 언급한 두 가지 외에도 JetBrains를 추천합니다. 도트트레이스, 이는 성능 프로파일러이자 메모리 프로파일러입니다.

직접 수행하고 싶고 CLR에 대해 꽤 깊이 알고 싶다면 다음을 사용할 수 있습니다. .NET 프로파일링 API, 이는 관리되지 않는 API로 Microsoft가 말했듯이 다음과 같습니다."프로파일 러가 CLR (Common Language Runtime)에 의해 프로그램의 실행을 모니터링 할 수있게한다." 캐주얼 사용을위한 것이 아니라 엄청난 양의 기능이 있습니다.

관련 SO 질문에 연결하십시오.

라이센스 : CC-BY-SA ~와 함께 속성
제휴하지 않습니다 StackOverflow
scroll top