c # - Mest effektive og grundlæggende måde at få cpu\% brug og netværk gennemput på Windows?

Indlæg af Hanne Mølgaard Plasc

Problem



Hvad er den mest effektive og grundlæggende måde at få cpu\% brug og netværk gennemløb på Windows platform?


Rett mig, hvis jeg er forkert ...



  1. windows api//Win32? SDK? (c/c ++) #sorry, jeg har ingen anelse ...

  2. Windows Management Instrumentation (WMI),

    • Win32\_PerfFormattedData\_Tcpip\_NetworkInterface klasse BytesReceivedPerSec

    • Win32\_PerfRawData\_PerfOS\_Processor klasse PercentProcessorTime


  3. System.Diagnostics PerformanceCounter

  4. Performance Data Helper (PDH), pdh.dll

  5. PerformanceCounter (c #/. net framework) eller en anden metode i dag?

  6. NtQuerySystemInformation i ntdll.dll



Så hvad er den bedste måde at få disse værdier på, kan jeg kun importere windows.h og kernel32.dll for at få både cpu procent brug og netværksgrænsefladehastighed værdier?


tak

Bedste reference



  Hvad er den bedste måde



Afhænger af resten af ​​programmet. I .NET (notering af C # tag på spørgsmålet) er både WMI og Performance Counters nemme at få adgang til.


Fra Win32 API, hvis du bruger COM allerede, kan WMI være det nemmeste som at læse Performance Data, der kræver en signifikant boilerplate kode (uanset API du starter fra).

Andre referencer 1


I C ++ ville jeg bruge PdhOpenQuery, PdhAddCounter osv. ...
Jeg ved ikke for C #, men jeg antager, at der er noget tilgængeligt i .NET. [4] [5] [6]