Windows – 如何知道具有WMI的进程的CPU和内存使用情况?

我正在使用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给出的值不同的值.

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

更新:
任务监视器显示PrivateWorkingSetSize,这似乎与Win32_Process不兼容. WorkingSetSize和PrivateWorkingSetSize之间有什么区别?

我很确定你想要WMI perf课程
Win32_PerfFormattedData_PerfProc_Process
Win32_PerfRawData_PerfProc_Process

例如.他们的属性PercentProcessorTime和WorkingSet

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

>格式化版本有问题(见嘿,脚本专家!文章Why Does My Performance Monitoring Script Keep Returning the Same Incorrect Values?)
>而原始数据类则需要将“CounterType”转化为正确的数学公式,以便根据原始数据计算值.参见How’s My Driving? Monitoring Performance Using WMI起始地点.

但是,这些WMI类应该给你所需的所有信息.

相关文章

Windows2012R2备用域控搭建 前置操作 域控主域控的主dns:自...
主域控角色迁移和夺取(转载) 转载自:http://yupeizhi.blo...
Windows2012R2 NTP时间同步 Windows2012R2里没有了internet时...
Windows注册表操作基础代码 Windows下对注册表进行操作使用的...
黑客常用WinAPI函数整理之前的博客写了很多关于Windows编程的...
一个简单的Windows Socket可复用框架说起网络编程,无非是建...