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