【问题标题】:How can I get Windows data like CPU usage, etc.?如何获取 Windows 数据,如 CPU 使用率等?
【发布时间】:2012-06-01 04:57:45
【问题描述】:

如何获取 Windows 数据,例如 CPU 使用率、物理内存、网络使用率和带宽,类似于我在任务管理器中看到的数据?我正在使用 C++。

【问题讨论】:

    标签: c++ windows bandwidth


    【解决方案1】:

    您可以使用性能数据获取 CPU 使用率。如果您只需要一个(或几个进程)的数据,则每隔几秒调用一次GetProcessTimes 可能会更简单。

    通常很难确定物理内存使用的确切含义。在你这样做之前,试图描述如何衡量它是毫无意义的。

    您可以通过GetIpStatistics获取有关网络利用率的一些信息。

    您可以使用GetIfTable获取已安装网络适配器的额定带宽。

    【讨论】:

    • 是的,我通过 GetProcessTimes 获取 cpu 使用情况,通过 GlobalMemoryStatusEx 获取内存使用情况
    • 您能解释一下如何使用这些功能获得带宽。我试过。但我不能。谢谢
    • GetIfTable 为您提供了一些 MIB_IFROW 结构。每个都有一个dwSpeed 成员,这是该接口的额定速度。
    • 似乎 dwSpeed 是 const (当我下载东西时,它不是改变值)。这不是互联网连接的竞争(本地连接接口)
    • @aviit: dwSpeed 告诉你适配器的理论最大带宽。 dwInOctets 告诉您您收到了多少字节,dwOutOctets 告诉您发送了多少字节(您每隔一段时间对后者进行采样以找出您每秒发送/接收的数量)。 dwType 会告诉您正在查看哪种接口(您主要关心以太网、WANPPP、802.11、WANPPP2 和可能的 PPP,但几乎可以肯定不关心隧道、ATM、FDDI、环回等)
    【解决方案2】:

    在 msdn 中查看 Performance Counters

    【讨论】:

    • 我看到了。但是,它太难理解和使用了。 :)。谢谢
    • 虽然这正是 Process Explorer(也可能是任务管理器)使用的。 :)
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2016-09-06
    • 1970-01-01
    • 1970-01-01
    • 2010-09-21
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多