Я написал приложение, которое отслеживает запущенные в данный момент процессы.
В следующем фрагменте я получаю все экземпляры в категории «Процесс».
var category = new PerformanceCounterCategory("Process");
var instanceNames = category.GetInstanceNames();
Чуть позже я получаю все категории для одного экземпляра. Это выглядит так.
var counters = category.GetCounters(instanse);
Я вижу, что каждый экземпляр в этой категории содержит 28 жетонов. Под списком счетчиков.
% Загруженности процессора
% времени пользователя
% привилегированного времени
пиковое значение виртуальных байтов
виртуальных байтов
сбоев страницы / сек
пиковое значение рабочего набора
рабочий набор
байтов файла подкачки Пик
байтов файла подкачки
байтов личного пользования
Количество потоков
База приоритета
Истекшее время
Идентификатор процесса
Создание идентификатора процесса
Выгружаемые байты пула
Выгружаемые байты пула
Счетчик обработчиков
Операций чтения ввода-вывода / сек
Операций записи ввода-вывода / сек
Операций ввода-вывода данных / сек
Прочих операций ввода-вывода / сек
Байт чтения ввода-вывода / сек
Запись ввода-вывода Байт / сек
Байт данных ввода-вывода / сек
Другие байты ввода-вывода / сек
Рабочий набор - частный
Так что вопрос. Какой счетчик предоставляет информацию о памяти, занятой текущим экземпляром?
Я думаю, это простой вопрос, но я не могу найти ответа. Буду признателен, если кто подскажет.
Если предположить, что это «Рабочий набор»:
Имя процесса: SkypeC2CPNRSvc | ProcessId: 2500 Процесс:
Группа: Процесс | Процесс: SkypeC2CPNRSvc | Имя: Рабочий набор | Значение: 311296
Это значение рассчитывается следующим образом: prfc.NextValue () / 1024
В диспетчере задач для этого процесса я вижу 316K