2009-09-25 26 views
12

Makinemde çalışan işlemlerin davranışını izlemek için bir wmi ve python kullanıyorum.WMI ile bir işlemin CPU ve bellek kullanımı nasıl bilinir?

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

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

Win32_Process bir lot of information var ama ben CPU tüketimi takibi için bir şey görmüyorum. Pencere Görev Monitörü bu bilgiyi gösteriyor, bu yüzden onu elde etmenin mümkün olduğunu düşünüyorum.

WorkSetSize özelliğinin, işlemin bellek tüketimini sağladığını düşündüm, ancak TaskMonitor tarafından verilen değerden farklı bir değer görebiliyorum.

Belirli bir işlem için bu 2 değeri nasıl alınır?

Güncelleştirmesi: Görev İzleyicisi, Win32_Process ile kullanılamayacağı anlaşılan PrivateWorkingSetSize değerini gösterir. WorkingSetSize ve PrivateWorkingSetSize arasındaki fark nedir?

cevap

9

İstediğin eminim WMI perf sınıfları Win32_PerfFormattedData_PerfProc_Process veya Win32_PerfRawData_PerfProc_Process

Ör Onların özellikleri PercentProcessorTime ve WorkingSet

Not Perf sınıfları anlamak için biraz çaba yapılabilir.

Ancak bu WMI sınıfları, aradığınız tüm bilgileri size vermelidir.

+0

Tam olarak ne istediğimi yapar! Çok teşekkür ederim – luc

2
+0

thnaks bakmak vardır. Ne yazık ki, bu soru soruma cevap vermiyor. İşlemin cpu kullanımı Win32_Process nesnesiyle kullanılabilir mi? – luc

+0

"C# için Kolaylaştırılmış WMI" bağlantısı kesildi. – damianb

+0

Şuanda çalışıyor - thankee. Umarım başkalarına kendi googlinginde yararlı olur.:) – damianb

İlgili konular