PerformanceCounter cpuCounter=new PerformanceCounter("Processor", "% Processor Time", "_Total"); PerformanceCounter ramCounter= new PerformanceCounter("Memory", "Available MBytes"); // The method nextValue() always returns a 0 value on the first call. So you have to call this method a second time cpuCounter.NextValue(); Thread.Sleep(1000); var cpuUsage = cpuCounter.NextValue(); string cpuUsageStr = string.Format("{0:f2} %",cpuUsage); var ramAvailable = ramCounter.NextValue(); string ramAvaiableStr = string.Format("{0} MB", ramAvailable);
References :
http://stackoverflow.com/questions/4679962/what-is-the-correct-performance-counter-to-get-cpu-and-memory-usage-of-a-process
http://stackoverflow.com/questions/2181828/why-the-cpu-performance-counter-kept-reporting-0-cpu-usage