Самый эффективный и фундаментальный способ получить процент использования процессора и пропускную способность сети в Windows?

Каков наиболее эффективный и фундаментальный способ получить процент использования процессора и пропускную способность сети на платформе Windows?

Поправьте меня если я ошибаюсь...

  1. windows api // Win32? SDK? (с / с ++) # извините, я понятия не имею...
  2. Инструментарий управления Windows (WMI),
    • Win32_PerfFormattedData_Tcpip_NetworkInterface class BytesReceivedPerSec
    • Win32_PerfRawData_PerfOS_Processor class PercentProcessorTime
  3. System.Diagnostics PerformanceCounter
  4. Помощник по производительности (PDH), pdh.dll
  5. PerformanceCounter (C#/.NET framework) или другой современный метод?
  6. NtQuerySystemInformation в ntdll.dll

Итак, каков наилучший способ получить эти значения, я мог только импортировать windows.h и kernel32.dll, чтобы получить процент использования процессора и скорость сетевого интерфейса?

Спасибо

2 ответа

В C++ я бы использовал PdhOpenQuery, PdhAddCounter и т. д. Не знаю для C#, но я думаю, что есть что-то доступное в.NET.

какой самый лучший способ

Зависит от остальной части программы. В.NET (отмечая тэг C# в вопросе) легко доступны как WMI, так и счетчики производительности.

Из Win32 API, если вы уже используете COM, WMI может быть самым простым, так как для чтения Performance Data требуется значительный стандартный код (с какого API вы начинаете).

Другие вопросы по тегам