Как посмотреть распределение памяти в данном приложении .NET? - PullRequest
4 голосов
/ 09 марта 2009

Мне нужно проверить, сколько памяти выделено в куче. Есть ли способ получить это значение программно с помощью C #?

Я знаю о System.Runtime.InteropServices.Marshal.SizeOf(...), но это говорит только о размере объекта.

Ответы [ 2 ]

5 голосов
/ 09 марта 2009

Используя PerformanceCounter , вы можете запросить "# байт во всех кучах" из вашего собственного процесса и даже из других процессов.

Используйте категорию ".Net CLR Memory", чтобы увидеть множество доступных счетчиков.

Вы должны увидеть разницу в загрузке системы между PerformanceCounter и GC.GetTotalMemory, предложенным Джоном Скитом.

4 голосов
/ 09 марта 2009

GC.GetTotalMemory делает все необходимое?

(Обратите внимание, что SizeOf говорит вам только о маршалированном размере - не обязательно о размере в памяти.)

...