Самый эффективный и фундаментальный способ получить процент использования процессора и пропускную способность сети в Windows?
Каков наиболее эффективный и фундаментальный способ получить процент использования процессора и пропускную способность сети на платформе Windows?
Поправьте меня если я ошибаюсь...
- windows api // Win32? SDK? (с / с ++) # извините, я понятия не имею...
- Инструментарий управления Windows (WMI),
- Win32_PerfFormattedData_Tcpip_NetworkInterface class BytesReceivedPerSec
- Win32_PerfRawData_PerfOS_Processor class PercentProcessorTime
- System.Diagnostics PerformanceCounter
- Помощник по производительности (PDH), pdh.dll
- PerformanceCounter (C#/.NET framework) или другой современный метод?
- NtQuerySystemInformation в ntdll.dll
Итак, каков наилучший способ получить эти значения, я мог только импортировать windows.h
и kernel32.dll, чтобы получить процент использования процессора и скорость сетевого интерфейса?
Спасибо
2 ответа
В C++ я бы использовал PdhOpenQuery
, PdhAddCounter
и т. д. Не знаю для C#, но я думаю, что есть что-то доступное в.NET.
какой самый лучший способ
Зависит от остальной части программы. В.NET (отмечая тэг C# в вопросе) легко доступны как WMI, так и счетчики производительности.
Из Win32 API, если вы уже используете COM, WMI может быть самым простым, так как для чтения Performance Data требуется значительный стандартный код (с какого API вы начинаете).