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

时间:2009-09-25 08:07:00

标签: 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有一个lot of information但我没有看到跟踪CPU消耗的任何内容。窗口任务监视器显示此信息,所以我认为有可能得到它。

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

如何为给定流程获取这两个值?

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

3 个答案:

答案 0 :(得分:10)

我很确定你想要WMI perf类 Win32_PerfFormattedData_PerfProc_ProcessWin32_PerfRawData_PerfProc_Process

E.g。他们的属性 PercentProcessorTime WorkingSet

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

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

答案 1 :(得分:2)

答案 2 :(得分:1)

Win32_Process还有UserModeTime和KernelModeTime,可用于计算CPU使用率

另请参阅http://technet.microsoft.com/en-us/library/ee176718.aspx

相关问题