Weil der Taskmanager dir nicht die Auslastung der Threads anzeigt. Sondern nur Durchschnittswerte preis gibt...
Der Taskmanager zeigt bei 100% an, das eben alle Cores auf 100% laufen. Liegen nur 50% an, heist das, das nur die hälfte aller Ressourcen auf dem PC in Benutzung ist. Nur man kann daran nicht erkennen, ob nicht vielleicht ein Core am Limit läuft.
Sinngemäßes Beispiel.
Du willst Kaffee kochen. Du hast vier Maschie, und eine! Kanne.
Du brauchst zum Kochen des Kaffees sagen wir fünf Arbeitsschritte (Wasser in Maschine, Filtertüte in Maschine, Kaffee in Maschine, Kanne unter Maschine, Maschine einschalten)
Angenommen alle Schritte laufen sequenziel hintereinander ab, und alle Schritte dauern in dem Fall gleich lang.
Die Maschine stellt sich als CPU Kern dar, das heist, eine Maschine heist ein Kern, zwei eben zwei usw.
Vorgabe ist nun, du sollst genau eine Kanne Kaffee kochen. Hast aber vier Maschinen.
Die Auslastungsanzeige würde in dem Fall 25% Auslastung anzeigen. Soweit so gut. Es wird einem bescheinigt, das eine Maschine läuft, die anderen aber nichts machen.
Nun hat Windows eine Eigenart, wenn man es so nennen will.
Es schubst die Last untereinander von Kern zu Kern.
Im Beispiel würde das wie folgt aussehen. Du schüttest das Wasser in Maschine (Core) 1, dann überträgst du den Zustand auf Maschine 2 und legst dort die Filtertüte ein, überträgst wieder den Zustand auf Maschine 3 und schüttest dort den Kaffee rein usw.
Unterm Strich zeigt die Gesamtauslastung immernoch 25% an. Weil eben eine Kanne Kaffee nach den fünf Arbeitsschritten rauskommt und die restlichen Teile/Maschinen in der Zeiteinheit eben nichts machen.
Schaltest du nun die Detailansicht dazu (also die Ansicht, Auslastung pro Core) würdest du sehen, das alle Maschinen eine teilauslastung haben. Aber nicht am Anschlag laufen (so wie in einem Taskmanager)
Der Grund ist folgender. Durch das rumschubsen der Arbeit zwischen den Cores liegt in der gemessenen Zeiteinheit X jeweils etwas Last auf jedem Core. In Summe aber bleibt die Arbeit sequenziel.
Nun stellt sich die Berechtigte Frage, warum nicht die Kerne alle voll ausfahren!?
Die Antwort ist ganz einfach. Die Vorgabe war ja, eine Kanne Kaffee... Nur kann eben die Kanne nicht schneller gekocht werden, wie die Maschine sie kochen kann. Zwar hat man vier Maschinen (im Beispiel) und würde vier Kannen in der gleichen Zeit kochen können, es wird aber nur eine angefordert. Das zeigt, das Limit liegt offensichtlich in der Geschwindigkeit, wie eine Kanne Kaffee von einer Maschine gekocht werden kann. -> klassisches CPU Limit im Bereich PC Spiele. Trotz der vermeindlich niedrigen Gesamtauslastung und der vermeindlich niedrigen Auslastung der einzelnen Cores. Unterm Strich zählt das, was am Ende zusammen errechnet werden kann. Nur geben gewisse Abhängigkeiten untereinander eben gewisse Rahmenbedingungen vor. Und wenn es heist, es muss eine Kanne hinten raus kommen, wird nur eine gekocht, obwohl mehr gekocht werden könnten. Der Umstand, das der Kaffee kochende (in dem Fall Windows als OS) die Arbeit dennoch jeweils zu gewissen stücken auf alle Maschinen verteilt führt die Auslastungsanzeige ins unsinnige. Am Limit selbst ändert das aber gar nix