Как я могу получить  ЦП и  Использование памяти для конкретного процесса с использованием класса .NET PerformanceCounter? А также в чем разница между
 Processor\% Processor Time и Process\% Processor Time?
Я немного смущен между этими двумя.
Как я могу получить  ЦП и  Использование памяти для конкретного процесса с использованием класса .NET PerformanceCounter? А также в чем разница между
 Processor\% Processor Time и Process\% Processor Time?
Я немного смущен между этими двумя.
Из this post:
Чтобы получить весь процессор ПК и память:
using System.Diagnostics;
Затем объявите глобально:
private PerformanceCounter theCPUCounter = 
   new PerformanceCounter("Processor", "% Processor Time", "_Total"); 
Затем, чтобы получить время процессора, просто вызовите метод NextValue():
this.theCPUCounter.NextValue();
Это позволит вам использовать CPU
Как и для использования памяти, то же самое относится, я полагаю:
private PerformanceCounter theMemCounter = 
   new PerformanceCounter("Memory", "Available MBytes");
Затем, чтобы получить использование памяти, просто вызовите метод NextValue():
this.theMemCounter.NextValue();
Для конкретного использования процессора и памяти:
private PerformanceCounter theCPUCounter = 
   new PerformanceCounter("Process", "% Processor Time",              
   Process.GetCurrentProcess().ProcessName);
где Process.GetCurrentProcess().ProcessName - это имя процесса, о котором вы хотите получить информацию.
private PerformanceCounter theMemCounter = 
   new PerformanceCounter("Process", "Working Set",
   Process.GetCurrentProcess().ProcessName);
где Process.GetCurrentProcess().ProcessName - это имя процесса, о котором вы хотите получить информацию.
Обратите внимание, что Рабочий набор может быть недостаточным, чтобы определить "объем памяти" - см. Что такое частные байты, виртуальные байты, рабочий набор?
Чтобы получить все категории, см. Пошаговое руководство: получение категорий и счетчиков
Разница между Processor\% Processor Time и Process\% Processor Time равна Processor от самого ПК, а Process - для отдельного процесса. Таким образом, процессорное время процессора будет использоваться на ПК. Время обработки процесса будет определяться указанным процессом. Полное описание имен категорий: Счетчики производительности монитора
Альтернатива использованию счетчика производительности
Используйте System.Diagnostics.Process.TotalProcessorTime и System.Diagnostics.ProcessThread.TotalProcessorTime свойства для расчета использования вашего процессора, как описано в статье.
Pelo Hyper-V:
private PerformanceCounter theMemCounter = new PerformanceCounter(
    "Hyper-v Dynamic Memory VM",
    "Physical Memory",
    Process.GetCurrentProcess().ProcessName);