- 20 April 2006
- 22.682
- 1.316
Moin.
Ich blick grade nicht durch, wie ich rechnen muss. Ziel ist es, wie im TaskManager die Prozessor-Auslastung und davon die Kernel-Auslastung zu bestimmen.
Die Funktion: https://msdn2.microsoft.com/en-us/library/ms724400.aspx
Zahlreiche Link über Google bringen diese Formel, die mir auch klar is:
Dann hab ich die Prozessor-Auslastung - im TaskMgr die grüne Linie.
Und wie komm ich jetzt an die Kernel-Auslastung - rote Linie im TaskMgr ?
Ich weiß ja nicht, ob die verbrachte IdleTime im Kernel war oder nicht.
Meine Überlegung war:
Dann wäre aber mathematisch
Also darf ich die IdleTime nur einmal reinrechnen. Nur wo ? Oder hab ichn Denkfehler ?
Ich blick grade nicht durch, wie ich rechnen muss. Ziel ist es, wie im TaskManager die Prozessor-Auslastung und davon die Kernel-Auslastung zu bestimmen.
Die Funktion: https://msdn2.microsoft.com/en-us/library/ms724400.aspx
Zahlreiche Link über Google bringen diese Formel, die mir auch klar is:
Code:
CPUUsage = (KernelTime + UserTime - IdleTime) / (KernelTime + UserTime)
Und wie komm ich jetzt an die Kernel-Auslastung - rote Linie im TaskMgr ?
Ich weiß ja nicht, ob die verbrachte IdleTime im Kernel war oder nicht.
Meine Überlegung war:
Code:
KernelUsage = (KernelTime - IdleTime) / (KernelTime + UserTime)
UserUsage = (UserTime - IdleTime) / (KernelTime + UserTime)
Code:
CPUUsage = UserUsage + KernelUsage =
= (UserTime - IdleTime) / (KernelTime + UserTime) + (KernelTime - IdleTime) / (KernelTime + UserTime) =
= (UserTime + KernelTime - 2*IdleTime) / (KernelTime + UserTime)
!= (UserTime + KernelTime - IdleTime) / (KernelTime + UserTime)