Как я вижу распределение памяти в данном приложении .NET?

StackOverflow https://stackoverflow.com/questions/625465

Вопрос

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

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

Это было полезно?

Решение

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

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

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

Другие советы

GC.GetTotalMemory делать все что нужно?

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

Лицензировано под: CC-BY-SA с атрибуция
Не связан с StackOverflow
scroll top