2009-09-25 23 views
12

Używam WMI i Pythona w celu śledzenia zachowania procesu uruchomionego na moim komputerze.Jak poznać wykorzystanie procesora i pamięci przez proces z WMI?

 
from win32com.client import GetObject 
wmi = GetObject('winmgmts:') 
processes = wmi.InstancesOf('Win32_Process') 

for process in processes: 
    print process.ProcessId, process.Name 

Win32_Process ma lot of information ale nie widzę niczego do śledzenia zużycia procesora. Okno Monitor zadań wyświetla te informacje, więc myślę, że można je uzyskać.

Myślałem, że właściwość WorkingSetSize podaje zużycie pamięci procesu, ale widzę inną wartość z tego, co jest podane przez TaskMonitor.

Jak uzyskać te 2 wartości dla danego procesu?

Aktualizacja: Monitor zadań pokazuje program PrivateWorkingSetSize, który wydaje się być niedostępny w systemie Win32_Process. Jaka jest różnica między WorkSetSize i PrivateWorkingSetSize?

Odpowiedz

9

Jestem całkiem pewien, że chcesz zajęcia perf WMI Win32_PerfFormattedData_PerfProc_Process lub Win32_PerfRawData_PerfProc_Process

Np ich właściwości PercentProcessorTime i WorkingSet

pamiętać, że zajęcia Perf podjąć wysiłek, aby zrozumieć bitowej.

Ale te klasy WMI powinny dostarczyć wszystkich informacji, których szukasz.

+0

Robi dokładnie to, co chcę! Dziękuję bardzo – luc

2
+0

thnaks za odpowiedź. Niestety to pytanie nie odpowiada na moje pytanie. Czy użycie procesu procesora jest dostępne w obiekcie Win32_Process? – luc

+0

Link "WMI Made Easy for C#" wydaje się martwy. – damianb

+0

Działa teraz - thankee. Mam nadzieję, że okaże się przydatny dla innych w ich własnym wyszukiwaniu.:) – damianb

Powiązane problemy