如何使用WMI了解进程的CPU和内存使用情况?

luc*_*luc 14 windows wmi

我正在使用wmi和python来跟踪在我的机器上运行的进程的行为.

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

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

Win32_Process有很多信息,但我没有看到任何跟踪CPU消耗的信息.窗口任务监视器显示此信息,所以我认为有可能得到它.

我认为WorkingSetSize属性给出了进程的内存消耗,但我可以看到与TaskMonitor给出的值不同.

如何获得给定流程的这两个值?

更新:任务监视器显示Win32_Process似乎不可用的PrivateWorkingSetSize.WorkingSetSize和PrivateWorkingSetSize有什么区别?

Dar*_*ryn 10

我很确定你想要WMI perf类 Win32_PerfFormattedData_PerfProc_ProcessWin32_PerfRawData_PerfProc_Process

例如,他们的属性PercentProcessorTimeWorkingSet

请注意,Perf类需要花费一些精力才能理解.

但是那些WMI课程应该为您提供所需的所有信息.