2011-07-04 2 views
3

스레드 (예 : 작업 세트, 개인 메모리 등)의 메모리 통계를 얻는 방법이 있는지 물어보고 싶습니다. 나는 우리가 프로세스에 대한 것들을 얻을 수 있다는 것을 알고 있지만, 내 애플 리케이션은 테스트 세트를 실행해야하고 각 테스트를 위해, 나는 통계, 특히 피크 메모리를 얻을 필요가있다. 지금 당장이 작업을 수행하는 유일한 방법은 각 테스트마다 앱을 실행하고 프로세스의 피크 메모리를 확보하는 것입니다.C#의 스레드에 대한 메모리 통계 얻기

아마도 스레드 수준 메모리 통계를 얻을 수있는 방법이 있습니까?

감사합니다.

답변

4

스레드가 없습니다 메모리 통계가 있습니다.

힙 메모리는 단일 스레드와 관련이 없습니다.
찾고있는 정보가 의미가 없습니다.

+0

실제로는 [ThreadStatic] 메모리가 있습니다. 그러나 충분히 가깝습니다. –

+0

@ 한스 :별로. '[ThreadStatic]'필드에서 객체가 소비하는 메모리는 어떤 스레드와도 연관되지 않습니다. (참조 또는 값 유형은 있습니다.) – SLaks

+0

글쎄요. 스레드가 종료 될 때까지 가비지 수집되지 않습니다. –

1

다른 응답자가 제안했듯이 스레드별로 메모리 통계를 얻을 수 없습니다. (실행중인 프로세스) System.Diagnostics.Process가 :

  1. 응용 프로그램 도메인에서 실행하고 별도의 프로세스에서 App domain resource monitoring

  2. 실행을 사용하고의 속성을 사용 중에 가장 좋은 방법이 될 것입니다.

관련 문제