-
C++ Ausleistungsermittlung
Hallo alle zusammen,
folgendes Setup:
Ich suche eine Möglichkeit, wie ich unter Windows die Last der einzelnen CPU + Hyperthreading Kerne als Prozentwert ermitteln kann, so wie es der Taskmanager anzeigt.
Ich benötige die Daten als Teil eines Systemmonitors der auf einem Systemunabhängigen Bildschirm angezeigt wird.
Nach einiger Suche, bin ich auf folgenden Code aus der MSDN gestoßen: https://msdn.microsoft.com/en-us/lib...(v=vs.85).aspx
Den Code habe ich dann so abgeändert: http://xup.in/dl,19852234 um mir den Wert aus PercentProcessorTime ausgeben zu lassen. Die Werte die die Funktion zurückgibt decken sich mit den von mir erwarteten Werten.
Nun habe jedoch 2 Probleme mit dem Code:
1. Der Code ist wahnsinnig langsam. Ich erreiche damit ca. 3 FPS in meiner render queue. (Ohne die Funktion über 200 FPS.)
2. Der Code scheint ein Memory-Leak zu enthalten. Ich bin mir jedoch nicht sicher wo, da ich den Code zu 98% aus der MSDN übernommen habe.
Meine Frage ist also:
1. Kennt jemand einen besseren Weg, die CPU Auslastung unter Windows auszulesen? Ich benötige auch die Auslastung der virtuellen Hyperthreading Kerne.
2. Falls nicht, hat jemand eine Idee, wie ich die Funktion beschleunigen kann und wo der Memory-Leak ist?
Zu 2. Ich habe bereits versucht, das zeitintensive registrieren der COM Schnittstelle nur einmal ablaufen zu lassen, jedoch bekam ich, egal wie ich es gemacht habe nach der zweiten Iteration immer einen Runtime Error.
Jede Hilfe ist willkommen!
Danke Keccak
-
Stichworte
Berechtigungen
- Neue Themen erstellen: Nein
- Themen beantworten: Nein
- Anhänge hochladen: Nein
- Beiträge bearbeiten: Nein
-
Foren-Regeln