.NET Framework - CPU Auslastung ermitteln!

Asked By Marc on 18-Jan-10 04:43 AM
Hallo,

ich w=FCrde gerne die CPU Auslastung des Systems und eines Prozesses
ermitteln.
Leider funktioniert das bei einem Mehrkernsystem nicht wie gewohnt.

Ich habe es =FCber die Performancecounter versucht.

Die System Auslastung funktioniert ganz gut.
counter =3D new PerformanceCounter("Processor", "% Processor Time",

Die Prozessauslastung bringt v=F6llig falsche Werte (h=F6her als die
Gesamtauslastung!).
counter =3D new PerformanceCounter("Process", "% Processor Time",
System.Diagnostics.Process.GetCurrentProcess().ProcessName, true);

Welchen Unterschied gibt es zu beachten bei Mehrkernsystemen?

Gr=FC=DFe
Marc




FrankDzaebel replied to Marc on 18-Jan-10 04:43 AM
Hallo Marc,


by design. Hier die Interpretation f=FCr MultiCore:

[All About Interop : System.Diagnostics.PerformanceCounter and %
Processor Time on multi-core or multi-cpu]
http://blogs.msdn.com/dotnetinterop/archive/2007/02/02/system-diagnostics-p=
erformancecounter-and-processor-time-on-multi-core-or-multi-cpu.aspx


ciao Frank
--
Dipl.Inf. Frank Dzaebel [MCP/MVP C#]
http://Dzaebel.NET
Marc replied to FrankDzaebel on 19-Jan-10 08:46 AM
erop/archive/2007/02/02/system-diagnos...

Ja Danke! So wie in dem Beispiel habe ich es auch gemacht.
Das funktioniert aber nicht! Das Beispiel ist auch ca. 3 Jahre alt,
evtl. sind heutige CPUs noch anders zu handeln?

Ich bekomme z.B. f=FCr die System CPU Auslastung 20% und f=FCr den Prozess
80%!
Der Task-Manager zeigt hingegeben, ebenfalls f=FCrs System 20%, aber f=FCr
den Prozess 12% (was auch stimmen d=FCrfte!).

Gru=DF
Marc
FrankDzaebel replied to Marc on 19-Jan-10 08:46 AM
Hallo Marc,

r Time on multi-core or-multi-cpu]
-performancecounter-and-processor-time-on-multi-core-or-multi-cpu.aspx
s

Im Artikel ist doch angegeben: N * 100 (N ist die
Anzahl der Cores in Deinem Prozessor).

Ggf. ist folgendes auch f=FCr Dich inteessant:

[Performance Counter Helper]
http://www.codeplex.com/PerfmonCounterHelper


ciao Frank
--
Dipl.Inf. Frank Dzaebel [MCP/MVP C#]
http://Dzaebel.NET