2009-09-03 2 views
1

내 응용 프로그램 (DotNET)은 C++/CLI SDK를 제공하는 C++ 독립 실행 형 응용 프로그램 내에서 플러그인으로 실행됩니다.DotNET 응용 프로그램의 메모리 사용

내 사용자가 대량의 데이터를 생성하는 것은 매우 쉽습니다. 플러그인의 메모리 소비 + 기본 응용 프로그램이 법적 최대치의 90 %에 도달하면 중단 옵션을 제공하고 싶습니다. .

관리되는 관리되지 않는 코드 모두에 대해 총 메모리 소비량을 측정하려면 어떻게해야합니까? 그리고 현재 응용 프로그램에 허용되는 메모리 창의 크기를 어떻게 알 수 있습니까?

답변

4

Process 클래스는이 정보의 대부분을 제공합니다. 니가 한 일은 Process.PrivateMemorySize64 일 것 같아.

당신은 할 수 있어야한다 :

var memoryUsage = Process.GetCurrentProcess().PrivateMemorySize64; 
+0

예! 그게 다야! 나는 이미 PInvoke를 통해이 문제를 해결해야한다고 걱정했다. –

+1

Process 클래스에는 다음과 같은 훌륭한 측정 항목이 많이 있습니다. 문서를 살펴보면 많은 정보가 표시됩니다. 어쨌든 고마워, –

1

프로파일 링 도구를 사용하는 것이 좋습니다. dotTrace이 효과적입니다.

+0

내 응용 프로그램이 런타임에 사용중인 메모리 양을 알 수있는 방법이 필요합니다. 프로파일 링 앱을 찾고있는 게 아닙니다. 본질적으로, 프로세스 탐색기/작업 관리자에서 내 프로세스에서 사용하는 개인용 바이트 수를 확인할 수 있습니다. –

+0

아, 질문을 잘못 읽었습니다. 죄송합니다! – Alan

1

GetProcessMemoryInfoPROCESS_MEMORY_COUNTERS_EXPrivateUsage을 확인합니다.

업데이트는 분명 내가 질문을 misred 및 앱의 CLI SDK 측에서 값을 싶지만. 관리 측면에서 이미 올바른 대답을 얻었습니다.

+0

. 매우 감사. –