Wie wird die CPU-Auslastung berechnet?
Frage
Der Windows Task-Manager zeigt die CPU-Auslastung in Prozent an. Was ist die Formel dahinter? Ist es so aus:
% CPU-Auslastung für Prozess A = (Summe der Alle Zeitscheiben bis jetzt zu A gegeben) / Insgesamt benötigte Zeit, da die Maschine gestartet
Oder ist es etwas anderes?
Lösung
Ich bin nicht 100% sicher, was Anwendungen sind, aber ich denke, Sie ein wenig sind auf der CPU-Berechnung aus.
Ich glaube, sie tun so etwas wie.
Process A CPU Usage = (Cycles for A over last X seconds)/(Total cycles for last X seconds)
Ich glaube, es auf das „Aktualisierungsintervall“ im Task-Manager eingestellt gebunden ist.
Während für Sie ein wenig Forschung tun, obwohl ich diese MSDN Artikel, die eine Microsoft empfohlene Methode zur Berechnung der CPU-Zeit einer Reihe von Anweisungen zeigen, das man könnte genauso gut ein wenig in Richtung ihrer Berechnung zeigen.
Andere Tipps
Nein, es ist nicht „da Boot-Zeit“ - es ist viel mehr Zeit empfindlich als die
.Es ist „Anteil der Zeit, während der eine CPU aktiv wurde ein Thread in diesem Prozess seit der letzten Aktualisierung läuft“. (Wenn die Bildwiederholfrequenz typischerweise etwa eine Sekunde.) In Task-Manager Ich glaube, es dann durch die Anzahl der CPUs geteilt ist, so dass der Gesamt endet 100% sein (dh auf einer Dual-Core-Maschine, ein Single-Thread-CPU hog zeigen als 50%). Andere ähnliche Programme manchmal nicht das tun, was insgesamt 100% * Kerne geben.
Sie können auch dieser Artikel zu überprüfen, wie die Art und Weise CPU-Zyklen in Bezug auf Zeitplanung behandelt werden als Teil von Vista geändert. Ich nehme an, dies gilt auch für Win7.
Sehen Sie den Quellcode der Task-Manager