Как я вижу распределение памяти в данном приложении .NET?
-
05-07-2019 - |
Вопрос
Мне нужно проверить, сколько памяти выделено в куче. Есть ли способ получить это значение программно с помощью C #?
Я знаю о System.Runtime.InteropServices.Marshal.SizeOf (...)
, но это говорит только о размере объекта.
Решение
Используя PerformanceCounter , вы можете запросить " ; # Байт во всех кучах " ;, из вашего собственного процесса и даже других процессов. Р>
Используйте категорию " .Net CLR Memory " чтобы увидеть много доступных счетчиков.
Вы должны увидеть разницу в загрузке системы между PerformanceCounter и GC.GetTotalMemory, предложенным Джоном Скитом.
Другие советы
GC.GetTotalMemory
делать все что нужно?
(Обратите внимание, что SizeOf
также сообщает вам только размер маршализованного - не обязательно размер в памяти.)