Перечислить все процессы и их текущее потребление памяти и ЦП?

Как я могу получить список всех процессов на C #, а затем для каждого процесса текущее потребление памяти и ЦП?

Мы высоко ценим образец кода.


person Alex    schedule 08.08.2009    source источник


Ответы (1)


В Process class есть метод GetProcesses, который позволит вам перечислить запущенные процессы и перечислить множество статистических данных, таких как использование памяти и время процессора. Посмотрите документацию в разделе свойств для получения статистики.

Использование памяти - сложный вопрос. На самом деле не существует единого числа, описывающего использование. Пожалуйста, посмотрите прекрасную серию Руссиновича по этому поводу. Первая часть находится здесь: http://blogs.technet.com/markrussinovich/archive/2008/07/21/3092070.aspx

person Brian Rasmussen    schedule 08.08.2009
comment
Я знаю о классе, но не мог понять, как узнать потребление ЦП или какое из 100 полей, связанных с памятью, на самом деле означает реальное потребление ОЗУ. - person Alex; 08.08.2009
comment
Использование памяти немного сложно, но я предполагаю, что вы, вероятно, захотите взглянуть на PrivateMemory. - person Brian Rasmussen; 08.08.2009
comment
Я думаю, это зависит от того, что вы имеете в виду под потреблением RAM (памяти). Windows хранит как минимум два значения объема памяти, используемой процессом. Используемая физическая память и размер виртуальной памяти, выделенной процессу. оба - потребление ... - person kdmurray; 08.08.2009
comment
Различные свойства ProcessorTime показывают ядро, пользователя и сумму использования ЦП. Разве это не то, что вы ищете? - person Brian Rasmussen; 08.08.2009
comment
Извините, позвольте мне уточнить. Я в основном ищу значения, которые также были бы в диспетчере задач. - person Alex; 08.08.2009
comment
@kdmurray: на самом деле все намного сложнее. У вас также есть сопоставления памяти: общая / частная, зарезервированная или фиксация и так далее. - person Brian Rasmussen; 08.08.2009
comment
В диспетчере задач есть множество вариантов использования памяти, аналогичных тем, которые предоставляет класс Process. Что касается% загрузки процессора, я считаю, что для этого есть счетчик производительности, но я не уверен. Я посмотрю. - person Brian Rasmussen; 08.08.2009
comment
Я пробовал поэкспериментировать со счетчиком производительности, но, похоже, он не дает немедленного считывания (считывание занимает около секунды - время измерения?) Или я делаю что-то не так, я не знаю. - person Alex; 08.08.2009
comment
Взгляните на msdn.microsoft.com/en-us/ library / для получения информации о счетчиках производительности - person Brian Rasmussen; 08.08.2009
comment
Я изучил страницу сегодня ранее, и она кажется слишком сложной для задачи? - person Alex; 08.08.2009
comment
Монитор процесса скважины - это немного сложно. Если вы хотите дать пользователю упрощенное представление о мире, вам нужно выяснить, как вы хотите его упростить. - person Brian Rasmussen; 08.08.2009
comment
@Alex Чтобы узнать, почему счетчик производительности имеет задержку, см. этот мой старый ответ, в котором я немного углубляюсь в почему. - person Scott Chamberlain; 31.12.2013