如何知道与WMI进程的CPU和内存使用情况?(How to know the CPU and mem

2019-07-19 13:58发布

我使用的是WMI和蟒蛇,以便跟踪我的机器上运行的进程的行为。

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给予不同的价值。

如何获得一个给定的过程中,这些2个值?

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

Answer 1:

我敢肯定,你想要的WMI类PERF Win32_PerfFormattedData_PerfProc_Process或Win32_PerfRawData_PerfProc_Process

例如,它们的性能PercentProcessorTime工作集

需要注意的是逆足类需要一点精力去理解。

  • 没有与格式化版本的陷阱(见您好,脚本专家!文章为什么我的性能监控脚本请返回相同的错误值? )
  • 和原始数据类需要人照顾翻译的“ CounterType ”到正确的数学公式来使用基于原始数据来计算值。 见怎么样我的驾驶技术? 监测性能使用WMI的一个首发位置。

但是,这些WMI类应该给你所有你正​​在寻找的信息。



Answer 2:

请参阅:

  • WMI一点通对于C#

  • 如何获得在Python当前CPU和内存使用情况?

也可能会感兴趣:

  • 获取运行的进程的当前内存利用率WMI在远程机器上


Answer 3:

Win32_Process的也有UserModeTime和KernelModeTime其可被用来计算CPU使用率

另外,也要看看http://technet.microsoft.com/en-us/library/ee176718.aspx



文章来源: How to know the CPU and memory usage of a process with WMI?
标签: windows wmi