CPU Auslastung auslesen
-
Also ich mach erst ein Führerschein bevor ich Auto fahre und guck mir das nicht vom Kumpel ab, denn dann bau ich garantiert ein Unfall!!!
Ich will damit sagen das du dich vieleicht erst mal kurz (wirklich kurz) mit
dieser Datenstruktur auseinandersetzt, sie ist im Prinzip einfach, auch wenn
es in der MSDN besch...eiden beschrieben ist und wenn du das dann mit Hi und Low Word und DWORD so wie die Struct von Filetime einigermassen weißt, ließt
sich der Code von flenders wie was Selbstgeschriebenes.
Nun kopierst du den Code und schon hast du einen Unfall (Fehlermeldung) und
weißt nicht warum.ULARGE_INTEGER ist in winnt.h deklardiert und includen muß du windows.h (wirst du ja haben), da du devcpp verwendest kann es sein das du noch ne lib zu linken
muß mit -l***, aber er hat in jedem Fall nen Member namens DWORD HighPart.
-
Evtl. müsstest du dann noch ein .u einfügen, also z.B. so:
uiKernelTime.u.HighPart
siehe auch: http://msdn.microsoft.com/library/en-us/winprog/winprog/ularge_integer_str.asp
-
flenders schrieb:
Evtl. müsstest du dann noch ein .u einfügen, also z.B. so:
uiKernelTime.u.HighPart
siehe auch: http://msdn.microsoft.com/library/en-us/winprog/winprog/ularge_integer_str.asp
Nein ich habe es gerade beim devcpp getestet, er akzeptiert die obere Struct von der UNION, also liegt der Fehler woanders aber auch nur wenn er den gleichen Compiler und Linker verwendet wie ich.
Dev-C++: Mingw32 gcc
-
Ich hab Dev-C++ 4 mit Mingw. Mit dem "u." klappts, allerdings zeigt er mir als CPU Auslastung immer 0 an.
-
joomoo schrieb:
Ich hab Dev-C++ 4 mit Mingw. Mit dem "u." klappts, allerdings zeigt er mir als CPU Auslastung immer 0 an.
Ruff die Funktion nur ein mal pro Sekunde auf, was für ein Wert erhälst du dann?
-
Und du musst natürlich auch etwas machen, sonst ist die Auslastung ja nahezu bei 0
-
flenders schrieb:
Und du musst natürlich auch etwas machen, sonst ist die Auslastung ja nahezu bei 0
Wenn ich daneben STRG+ALT+ENTF laufen lasse zeigt das mir aber 2-10% immer so an.
-
Du rufst die Funktion aber schon mehrmals auf, oder? Naja, kann auch sein, dass mein Code fehlerhaft ist
-
flenders schrieb:
Du rufst die Funktion aber schon mehrmals auf, oder? Naja, kann auch sein, dass mein Code fehlerhaft ist
Ich glaube es liegt an Dev-C++ 4. Könnte jemand flenders Code mal mit nem anderen Compiler testen? Ich kenn keine und Dev-C++ 5 geht bei mir net...
-
Poste mal dein "Test"-Code ich guck ob es bei mir läuft, bzw. Korigieren kann.
-
Hallo,
ich habe jetzt nicht alles gelesen und weis nicht wie weit ihr siet aber ich habe vor einer wiele ein programm geschieben was cpu-auslastung für global und für einzelne prozesse anzeigen kann.wien es dich interesirt scheib mal.
MFG TaccoGo
-
TaccoGo schrieb:
... aber ich habe vor einer wiele ein programm geschieben was ...
Kannst du das bitte Übersetzten, damit wir wissen ob du eins Geschrieben hast oder eins schreiben willst.
-
Er hat doch geschrieben, dass er es geschrieben hat - Code wäre sicher interessant, falls er nicht allzu lang ist
-
Hallo,
ich habe den code nicht hier (den habe ich zu hause). ich bringe den gern morgen mit wen ihr wolt.(aus den kopf wies ich das auch nicht mehr.
MFG TaccoGo
-
Benutzt du in deinem Code auch GetProcessTimes()?
Es wäre nähmlich mal Interessant eine Lösung für nicht-NT Systeme (9x,me) zu haben.
-
Die CPU-Auslastung pro Prozess wird evtl. schwierig (unmöglich?), aber vom System kannst du es mit HKEY_DYNAMIC_DATA aus der Registry bekommen.
-
meine lösung leuft auch nur auf NT-System(w2k,wxp getestet).
wolt ihr sie denoch haben??MFG TaccoGo
-
Klar wollen wir, und wenn es gut ist kann mann es in einem seperaten Thread stecken und in die FAQ schieben.
-
HKEY_DYNAMIC_DATA benutze ich bei mir (w98se), ich hatte mal vor ewigkeiten ein tut in VB drüber gelesen und es in C++ umgesetzt, nur bin ich mir sicher das es auch anders geht, den Windows muß diesen Wert auch ermitteln und in die Reg schreiben.
-
Klar muss auch Windows diesen Wert irgendwie ermitteln, aber das heißt deswegen noch lange nicht, dass du noch anders an diesen Wert kommst. Es kann natürlich sein, dass es noch eine Möglichkeit gibt, aber Windows kümmert sich eben und die Zuteilung der Rechenzeit, und weiß von daher, wieviel Rechenzeit der Windows-Leerlauf-Prozess bekommt (denke mal, dass das irgendwie so ermittelt wird)