Я пытаюсь выяснить, сколько памяти использует мой собственный .Net-сервер (для мониторинга и ведения журнала).
Я использую:
Process.GetCurrentProcess().PrivateMemorySize64
Однако объект Process имеет несколько разных свойств, которые позволяют мне читать используемое пространство памяти: Paged, NonPaged, PagedSystem, NonPagedSystem, Private, Virtual, WorkSet
а затем "пики": я предполагаю, что просто сохраняю максимальные значения, которые они использовали в последнее время.
Чтение через определение MSDN каждого свойства не оказалось для меня слишком полезным. Я должен признать, что мои знания относительно управления памятью (в том, что касается пейджинга и виртуального) очень ограничены.
Итак, мой вопрос, очевидно, "какой я должен использовать?", и я знаю, что ответ "это зависит".
Этот процесс будет в основном содержать кучу списков в памяти о вещах, которые происходят, в то время как другие процессы общаются с ним и запрашивают его для других. Я ожидаю, что сервер, на котором это будет работать, потребует много оперативной памяти, и поэтому я время от времени запрашиваю эти данные, чтобы иметь возможность оценивать требования к ОЗУ по сравнению с размерами списков, которые он хранит внутри.
Итак... Какую пользу я должен использовать и почему?