我正在使用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有什么区别?
答案 0 :(得分:10)
我很确定你想要WMI perf类 Win32_PerfFormattedData_PerfProc_Process或 Win32_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