Как узнать, сколько памяти потребляет домен приложений .Net?
Вопрос
Я пытаюсь программно ограничить потребление памяти плагинами, работающими в .Net AppDomain, но не могу найти для этого никаких параметров настройки и не могу найти способ запросить AppDomain, чтобы выяснить, сколько памяти он потребляет. .Есть идеи?
Решение
Вот документация по запросу использования памяти процессом.Это не то же самое, что AppDomain, но с него можно начать.
http://msdn.microsoft.com/en-us/library/s80a75e5(VS.80).aspx
Вы также можете спросить GC, что, по его мнению, в настоящее время выделено.
http://msdn.microsoft.com/en-us/library/system.gc.gettotalmemory(VS.71).aspx
Другие советы
Старый вопрос, но тем временем (начиная с .Net framework 4.0) доступно новое решение.Вам необходимо включить ARM (мониторинг ресурсов домена приложения).С этого момента вы можете запросить информацию об общем потребляемом процессорном времени, использовании памяти и т. д.
Не уверен программно, но Обозреватель процессов может сказать вам, сколько памяти использует домен приложений .net.Возможно, у них есть какая-то документация о том, как они запрашивают эту информацию.
Использование взаимодействия mscoree.CorRuntimeHostClass из C:\WINDOWS\Microsoft.NET\Framework\vXXXXXX\mscoree.tlb