Избройте всички процеси и тяхното текущо потребление на памет и процесор?

Как мога да получа списък на всички процеси в C# и след това за всеки процес текущата памет и потреблението на процесора?

Примерният код е високо оценен.


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


Отговори (1)


Класът Process има метод GetProcesses, който ще ви позволи избройте изпълняваните процеси и избройте куп статистики като използване на паметта и време на процесора. Вижте документацията под свойствата за статистиката.

Използването на паметта е сложен въпрос. Наистина няма нито едно число, което да описва употребата. Моля, вижте отличната серия на Русинович по въпроса. Първата вноска е тук: http://blogs.technet.com/markrussinovich/archive/2008/07/21/3092070.aspx

person Brian Rasmussen    schedule 08.08.2009
comment
Знам за класа, но не можах да разбера как да получа потреблението на процесора или кое от 100-те полета, свързани с паметта, всъщност означава реалното потребление на RAM. - 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/ библиотека/ за информация относно броячи на производителност - 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