Auslesen der aktuellen cpu-Auslastung in c++/windows für bestimmte Prozess
Möchte ich berechnen aktuelle cpu-Auslastung, die für eine Besondere Anwendung in meinem code. Ich schaute im internet und fand die pdh-Bibliothek für windows. Als ich es versucht habe bin ich immer der Gesamt-cpu-Auslastung, nicht cpu-Auslastung für einen Prozess.
PdhAddCounter(hquery, TEXT("\\Processor(_Total)\\% Processor Time"),0,&counter);
So, was Mach ich mit dieser Zeile erhalten Sie die cpu-Auslastung für den Prozess? Ich habe versucht, ersetzen _Total Prozess mit dem Namen(explorer). Damals bin ich immer 0 cpu-Auslastung. Aber ich habe im Ressourcen-monitor öffnen viele Fenster gleichzeitig erhöhte cpu-Auslastung bis zu 20%. Noch in der log-Datei die cpu-Auslastung zeigt 0.
Kann mir jemand helfen mit diesem?
vielen Dank im Voraus.
InformationsquelleAutor Darshan | 2013-08-07
Du musst angemeldet sein, um einen Kommentar abzugeben.
Müssen Sie
GetProcessTimes
- Und leider, es wird nicht geben Sie die "CPU-Auslastung", wird es geben Sie die Menge der CPU-Zeit seit dem Start des Prozesses. So bekommen die CPU-Nutzung, müssen Sie nehmen eine Probe, die lagern, und dann nehmen Sie ein anderes Beispiel einer bekannten Menge Zeit später, und dann berechnen Sie die Zeit (und wenn Sie wollen wissen der gesamten Nutzung, müssen Sie die
usertime
undkerneltime
zusammen, natürlich).Und was mir vorgeschlagen wird. Sie haben zu tun, ein wenig coding-Arbeit aus der Prozentwert (und der Griff des Prozesses, den Sie interessiert sind).
Ich habe einen anderen Weg, es zu tun.
Sie können posten Sie Ihre Lösung als Antwort, um anderen zu helfen und bekommen auch Punkte.
InformationsquelleAutor Mats Petersson
Können Sie überprüfen, diese zum Beispiel. Alles erklärt in diesem Projekt. Wird es geben-Speicher, basierend auf der Prozess-id(die gleiche Art und Weise dargestellt, die im task-manager)
Dank,
Darshan
Speicherauslastung und CPU-Auslastung sind zwei gewaltig, sehr unterschiedliche Dinge.
oops.. sorry.. my bad.. Lassen Sie mich überprüfen, was ich genau gemacht habe um dieses problem zu lösen, wie ich kann mich nicht erinnern, gerade jetzt und erhalten Sie zurück zu diesem post wieder.
Fragte er sich selbst eine Frage stellt, dann beantwortet Sie sich selbst, nicht zu merken, dass er beantwortet eine ganz andere Frage... Dies ist eine Ergänzung zu "Jetzt habe ich alles gesehen" - Tasche.
Passiert es. Wir alle sind Menschen.
InformationsquelleAutor Darshan