Получение использования режима работы
У меня были некоторые проблемы с выяснением того, как именно я получаю использование ramb. (Сколько бара в данный момент потребляется, а не сколько зарезервировано, или его максимальное или минимальное значение)
Предположим, что у меня есть процесс, запущенный на заднем плане, Java.exe, разрешено использовать 1024 МБ оперативной памяти, как я могу узнать, сколько бара в данный момент используется.
Я сам запускаю этот процесс, поэтому у меня есть доступ к объекту Process, я просто хотел бы немного разъяснить, какое свойство для меня.
Ответы
Ответ 1
Если вас интересует физическая память, вы, вероятно, захотите WorkingSet64, который дает "объем физической памяти, выделенной для связанной обработать." Понимайте, что это значение постоянно колеблется, и значение, которое этот звонок дает вам, может быть несовместимым. Вы также можете быть заинтересованы в PeakWorkingSet64, который дает "максимальный объем физической памяти, используемой связанным процессом".
Ответ 2
Я нашел это в msdn и работает
System.Diagnostics.Process proc = assign your process here :-)
int memsize = 0; // memsize in Megabyte
PerformanceCounter PC = new PerformanceCounter();
PC.CategoryName = "Process";
PC.CounterName = "Working Set - Private";
PC.InstanceName = proc.ProcessName;
memsize = Convert.ToInt32(PC.NextValue()) / (int)(1024);
PC.Close();
PC.Dispose();