我正在使用wmi和python来跟踪在我的机器上运行的进程的行为。
从win32com.client中导入GetObject wmi = GetObject('winmgmts:') processes = wmi.InstancesOf('Win32_Process') 进程中的进程: 打印process.ProcessId,process.Name
Win32_Process有很多信息,但是我没有看到跟踪CPU消耗的任何信息 。 窗口任务监视器显示这个信息,所以我认为有可能得到它。
我认为WorkingSetSize属性给予了进程的内存消耗,但是我可以看到与TaskMonitor给出的值不同的值。
如何获得给定过程的这2个值?
更新:任务监视器显示似乎与Win32_Process不可用的PrivateWorkingSetSize。 WorkingSetSize和PrivateWorkingSetSize有什么区别?
我很确定你想要的WMI perf类Win32_PerfFormattedData_PerfProc_Process或Win32_PerfRawData_PerfProc_Process
例如它们的属性PercentProcessorTime和WorkingSet
请注意,Perf类需要花费一点努力才能理解。
但是那些WMI类应该给你所有你想要的信息。
请参见:
WMI简化了C#
如何在Python中获取当前的CPU和RAM使用情况?
也可能是有趣的:
Win32_Process也有UserModeTime和coreelModeTime,可以用来计算CPU使用率
另请参阅http://technet.microsoft.com/en-us/library/ee176718.aspx