Ich beobachte die prozentuale CPU-Auslastung eines Prozesses. Wie verwendet ein Prozess nur 50% CPU? Verwendet ein Prozess nicht 100%, dann 0%, dann 100%? Es ist nicht wie jeder andere Befehl ein anderes Programm.
Hast du zufällig einen Dual-Prozessor?
vor 15 Jahren
1
Auf jeden Fall eine Frage für SuperUser.
Noldorin vor 15 Jahren
0
Es werden nur etwa einmal pro Sekunde abgefragt. Sie sehen, wie viel der letzten Sekunde verwendet wurde.
Wenn Sie eine CPU für eine kurze Zeit bei 50% sitzen sehen, ist es wahrscheinlich, dass in einem Dual-CPU-System 100% einer CPU verwendet werden.
"Ein Kern eines Dual-Core-Systems" - ... oder sogar eine einzelne CPU mit "Hyperthreading".
vor 15 Jahren
4
@ChrisW: behoben.
Joel Coehoorn vor 15 Jahren
0
Prozentsätze der CPU-Auslastung werden häufig für jede CPU einzeln zu 100% angegeben, sodass die gesamte CPU-Leistung, die in einem Dual-Core-System verwendet werden soll, 200%, in einem Quad-Core 400% usw. beträgt.
David Z vor 15 Jahren
0
Nicht im Windows Task Manager.
Joel Coehoorn vor 15 Jahren
0
11
Eric Petroelje
Technisch hast du recht. Zu einem bestimmten Zeitpunkt wird die CPU entweder verwendet oder nicht verwendet. Die Anzeige in einem Diagramm wäre jedoch nicht sehr hilfreich, so dass der Durchschnitt der CPU-Auslastung über einen bestimmten Zeitraum, wahrscheinlich pro Sekunde, ermittelt wird.
3
Brian Agnew
Das Betriebssystem plant den Prozess für einen bestimmten Zeitraum. Wenn also der Prozess für etwa 1 ms von 10 ms geplant ist, wird er 10% CPU verwenden.
Dies ist ein wenig uninteressant, da (in einem Single-Threaded-System mit einem Prozessor) der Prozess entweder ausgeführt wird oder nicht läuft. dh es verwendet 100% oder 0%. Der Prozentsatz, den Sie sehen, wird über ein Zeitfenster gemessen und ist ein Maß für das Betriebssystem, das Ihrem Prozess Zeitfenster für die Ausführung zuweist.
Beachten Sie, dass Ihr Prozess nicht dazu beiträgt, wenn Sie auf E / A zugreifen. Wenn Sie also eine große Berechnung durchführen, registrieren Sie sich zu 100% (vorausgesetzt, es läuft nichts anderes). Wenn Sie dann auf einen Netzwerk-Paket- / Datenträgerzugriff usw. warten, sinkt Ihre CPU-Zahl, obwohl Ihr Prozess noch läuft.
2
tim
Auf einem sehr niedrigen Niveau haben Sie grundsätzlich recht. Zu einem bestimmten Zeitpunkt führt der Prozessor entweder eine Anweisung für einen bestimmten Prozess aus oder nicht.
Ihr Betriebssystem befindet sich jedoch zwischen Ihren Prozessen und dem Prozessor, sodass diese Zeit teilen. Der Prozentsatz, den Sie sehen, ist der Prozentsatz der letzten Verarbeitungszeit, die das Betriebssystem diesem Prozess gewährt hat.
1
Havenard
Es basiert auf der durchschnittlichen Zeit. Obwohl alle Threads die gleiche CPU-Zeit haben können (basierend auf Priorität), können die Threads nur "Danke, aber ich bin im Leerlauf" sagen, und weitergeben, es wird an den nächsten Thread übergeben. Aus diesem Grund verwenden Programme nicht immer die gleiche% -Zeit, und die meisten Programme verbrauchen 0% CPU. Programme, die wirklich CPU benötigen, können fast 100% Zeit in Anspruch nehmen.
Warum ist die Obergrenze bei 50%? Sie haben wahrscheinlich zwei CPU-Kerne und verwenden nur einen.
Oder, wie vorgeschlagen, wird Hyperthreading verwendet, aber ich weiß nicht, wie sich dieser Thread genau verhält.
0
Mike Two
Ihr Programm führt möglicherweise viele E / A-Vorgänge durch (Lesen oder Schreiben von Datenträgern oder Netzwerken). Das würde das Programm beschäftigen, aber wenig bis keine CPU-Zeit benötigen.
0
nos
Die Systemauslastung wird gemessen und gemittelt, was nur sinnvoll ist.
Es wird beispielsweise aufgezeichnet, wie viel Zeit ein Prozess / Thread während einer Sekunde ausgeführt wurde. Wenn der Prozessor 1 Sekunde für die CPU aufgewendet hat, sind dies 100% der CPU (oder 50% bei 2 CPUs usw.). Bei 100 ms entspricht dies 10% der CPU-Auslastung.