Du vergisst halt die Tatsache, dass eine CPU nicht erst bei 100% Auslastung limitiert. Das ist etwa 2005 gestorben und spricht sich einfach nicht rum.
Alle Kerne auszulasten ist kein Windows-Automatismus, sondern muss vom Programmierer der Software geleistet werden. Und der steht vor verschiedenen Problemen.
a) Nicht alles lässt sich unendlich parallelisieren
b) Es kostet Zeit und damit Geld die Engine zu parallelisieren
c) Es ist eventuell noch ein altes Grundgerüst vorhanden das auf einem Kern läuft, warum soll man es paralleliseiren und damit sein Gewinn schmälern
d) Optimiert man jetzt seine Engine auf 4 Kerne, und alle User mit 16 Kernen heulen, oder optimiert man seine Engine auf 32 Kerne, und alle 4-Kern-User heulen?
e) Am Ende müssen alle Thread synchronisiert werden, und auch das kostet CPU-Zeit und erzeugt eventuell ein weiteres CPU-Limit, während der Haupt-Thread auf alle Neben-Threads warten muss.
Anhang anzeigen 731074Anhang anzeigen 731075
Ich ziehe den CPU-Takt an, die FPS gehen mit. Ganz klares CPU-Limit (wäre es nicht so dürften die FPS nicht mitgehen). Ich sehe das CPU-Limit an der Auslastung der Graka(s). Die langweilen sich nämlich höllisch. Aber siehst Du es an der CPU? Wirklich? Ich nicht. Aber vielleicht hast Du ja ne bessere Methode als ich. Ich lerne gerne :-)
Und da Du ja gerne YT schaust.
Hier mal das ganze am konkreten Beispielen. Schau auf die Auslastung der Graka. Und schau was passiert wenn ich Kerne zu oder abschalte, deren Auslastung und die FPS.
Hier mit einer Engine die gut über die Kerne skaliert
Hier mit einer Engine die nur 4 Kerne nutzt.
DR;tl: Am Ende wird es immer schwieriger ein CPU-Limit an der Auslastung der CPU zu sehen, je mehr Kerne Deine CPU hat.