【问题标题】:How to know the CPU and memory usage of a process with WMI?如何使用 WMI 了解进程的 CPU 和内存使用情况?
【发布时间】:2010-12-01 08:28:20
【问题描述】:

我正在使用 wmi 和 python 来跟踪在我的机器上运行的进程的行为。

从 win32com.client 导入 GetObject wmi = GetObject('winmgmts:') 进程 = wmi.InstancesOf('Win32_Process') 对于进程中的进程: 打印 process.ProcessId, process.Name

Win32_Process 有一个lot of information,但我没有看到任何用于跟踪 CPU 消耗的信息。窗口任务监视器正在显示此信息,因此我认为可以获取它。

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

如何获取给定进程的这两个值?

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

【问题讨论】:

    标签: windows wmi


    【解决方案1】:

    【讨论】:

    • 感谢您的回答。不幸的是,这个问题没有回答我的问题。 Win32_Process 对象是否提供进程的 cpu 使用率?
    • “WMI Made Easy for C#”链接似乎失效了。
    • 现在工作 - 谢谢。希望它在其他人自己的谷歌搜索中证明是有用的。 :)
    【解决方案2】:

    我很确定您想要 WMI 性能类 Win32_PerfFormattedData_PerfProc_ProcessWin32_PerfRawData_PerfProc_Process

    例如它们的属性 PercentProcessorTimeWorkingSet

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

    但是那些 WMI 类应该会为您提供您正在寻找的所有信息。

    【讨论】:

    • 这正是我想要的!非常感谢
    【解决方案3】:

    Win32_Process 也有 UserModeTime 和 KernelModeTime 可以用来计算 CPU 使用率

    也看http://technet.microsoft.com/en-us/library/ee176718.aspx

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2014-04-07
      • 2012-04-03
      • 2011-04-27
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2011-03-25
      • 2011-03-09
      相关资源
      最近更新 更多