在Windows上获得cpu%使用率和网络吞吐量的最有效和最基本的方法?

时间:2011-11-15 09:39:41

标签: c# c++ windows wmi pdh

在Windows平台上获取cpu%使用率和网络吞吐量的最有效和最基本的方法是什么?

纠正我如果我错了......

  1. windows api // Win32? SDK? (c / c ++)#sorry,我不知道......
  2. Windows Management Instrumentation(WMI),
    • Win32_PerfFormattedData_Tcpip_NetworkInterface类BytesReceivedPerSec
    • Win32_PerfRawData_PerfOS_Processor类PercentProcessorTime
  3. System.Diagnostics PerformanceCounter
  4. 效果数据助手(PDH), pdh.dll
  5. PerformanceCounter(c#/ .net framework)或其他现在的方法?
  6. ntdll.dll
  7. 中的NtQuerySystemInformation

    那么获取此值的最佳方式是什么?我是否只能导入windows.h kernel32.dll 以获取 cpu百分比使用率 网络接口速度 值?

    感谢

2 个答案:

答案 0 :(得分:1)

在C ++中,我会使用PdhOpenQueryPdhAddCounteretc... 不知道C#,但我想.NET中有可用的东西。

答案 1 :(得分:1)

  

什么是最好的方式

取决于该计划的其余部分。在.NET中(注意问题上的C#标签),WMI和性能计数器都很容易访问。

从Win32 API开始,如果您使用的是COM,WMI可能是最简单的,因为阅读性能数据需要大量的样板代码(无论您从哪个API开始)。