Как рассчитать процент для оперативной памяти(memoryusage)
У меня есть 2 запроса.
Я создал работу с мониторингом процессора, я получил значение для использования процессора, использования оперативной памяти(памяти), были как использование процессора было рассчитано в процентах.
1. Мне нужно использование памяти в процентах. Я пытался, но не смог дотянуться.
2.Когда я размещаю это приложение в службе Windows, Как я могу определить, какая машина использует потребление.
public partial class Form1 : Form { public Form1() { InitializeComponent(); } static List<float> AvailableCPU = new List<float>(); static List<float> AvailableRAM = new List<float>(); protected static PerformanceCounter cpuCounter; protected static PerformanceCounter ramCounter; private void Form1_Load(object sender, EventArgs e) { cpumonitor("CL35"); } public void cpumonitor(string machinename) { cpuCounter = new PerformanceCounter(); cpuCounter.CategoryName = "Processor"; cpuCounter.CounterName = "% Processor Time"; cpuCounter.InstanceName = "_Total"; //string machinename = System.Environment.GetEnvironmentVariable("COMPUTERNAME"); cpuCounter.MachineName = machinename; ramCounter = new PerformanceCounter("Memory", "Available MBytes"); try { System.Timers.Timer t = new System.Timers.Timer(5000); t.Elapsed += new ElapsedEventHandler(TimerElapsed); t.Start(); Thread.Sleep(10000); } catch (Exception ex) { MessageBox.Show(ex.Message, "catched exception"); } } public static void TimerElapsed(object source, ElapsedEventArgs e) { float cpu = cpuCounter.NextValue(); float ram = ramCounter.NextValue(); MessageBox.Show(string.Format("CPU Value: {0}, ram value: {1}", cpu, ram)); AvailableCPU.Add(cpu); AvailableRAM.Add(ram); } }
Что я уже пробовал:
Я пытался получить полное использование памяти.
public partial class Form1 : Form { public Form1() { InitializeComponent(); } static List<float> AvailableCPU = new List<float>(); static List<float> AvailableRAM = new List<float>(); protected static PerformanceCounter cpuCounter; protected static PerformanceCounter ramCounter; protected static PerformanceCounter ramTotMB; private void Form1_Load(object sender, EventArgs e) { cpumonitor("CL35"); } public void cpumonitor(string machinename) { cpuCounter = new PerformanceCounter(); cpuCounter.CategoryName = "Processor"; cpuCounter.CounterName = "% Processor Time"; cpuCounter.InstanceName = "_Total"; //string machinename = System.Environment.GetEnvironmentVariable("COMPUTERNAME"); cpuCounter.MachineName = machinename; ramCounter = new PerformanceCounter("Memory", "Available MBytes"); ramTotMB = new PerformanceCounter("Memory", "Total MBytes"); try { System.Timers.Timer t = new System.Timers.Timer(5000); t.Elapsed += new ElapsedEventHandler(TimerElapsed); t.Start(); Thread.Sleep(10000); } catch (Exception ex) { MessageBox.Show(ex.Message, "catched exception"); } } public static void TimerElapsed(object source, ElapsedEventArgs e) { float cpu = cpuCounter.NextValue(); float ram = ramCounter.NextValue(); float Totram = ramTotMB.NextValue(); MessageBox.Show(string.Format("CPU Value: {0}, ram value: {1},Totalvalue: {2}", cpu, ram,Totram)); AvailableCPU.Add(cpu); AvailableRAM.Add(ram); } }
Maciej Los
А что не так с вашим кодом?
vinodh muthusamy
мне нужно узнать, сколько памяти используется в процентах.
Jochen Arndt
usedMem = totalMem-availMem;
percentageMemUsage = 100 * usedMem / totalMem;
vinodh muthusamy
Совершенно верно. Но я попытался получить полную память указанной машины. Я не мог получить ценность.
Jochen Arndt
Смотрите мое решение.