Nehmen wir an die Zeit ist 1Sekunde.
Bei 2GHz können 100 Rechenoperationen in 0,5Sek. abgearbeitet werden - 50% der Zeit war der Thread zu 100% beteiligt.
Bei 4GHz können die 100 Rechenoperationen in 0.25Sek. abgearbeitet werden - 25% der Zeit war der Thread zu 100% beteiligt.
Das verstehe ich, aber ich beobachte ja genau das Gegenteil bei mir.
Bitte berichtige mal mein Beispiel. So ganz bin ich noch nicht on Board.
Japp, zumindest gaaaanz abstrakt dargelegt, wäre das so richtig. Real praktisch ist das deutlich komplexer. Denn ein Programm besteht normal nicht aus 100 Rechenoperationen und du hast auch nicht eine lineare Skalierung, es kommt noch Multitasking ins Spiel (also dass ein Betriebssystem weitere Tasks mit zur Abarbeitung auf die selben phyischen Threads los lässt), dann noch besagte OoO Execution und Pipelining unter der Decke, all das sorgt für real praktisch nicht 100% der dargelegten Skalierungseffekte. Aber wenn man das außen vor lässt, in einer kleinen perfekten Laborumgebung, dann stimmt das schon so...
Folgendes Script wäre für dieses Thema sehr gut geeignet:
Zähle exakt 60Sekunden lang von 0 bis 1.000.000. Zähle bei jeden vollen 1.000.000 einen Counter nach oben.
Es ist zu erwarten das beim TurboBoost er viel öfter bis 1Mio zahlen kann in 60Sekunden als im nativen Modus.
Ich wollte es noch sagen, es macht natürlich wenig Sinn nur irgend eine Auslastung zu vergleichen ohne die Geschwindigkeit messbar zu machen. So wie du es beschreibst, wäre es möglich...
Wenn du abseits von VBScript bspw. in Richtung Powershell oder andere "Scriptsprachen" gehst, wäre es bspw. möglich einfach die Ausführung eines Teils zu überwachen und am Ende anzeigen zu lassen, wie lange das eben hat gedauert. Bei sowas sieht man dann auch, dass das 2GHz Modell deutlich langsamer ist als das 4GHz Modell. Es wird nicht 100% sein, siehe oben, aber es wird deutlich sichtbar. Und die Auslastung ist dann in beiden fällen für den einen Threads 100%.
Was man ggf. noch dazu erwähnen sollte, es ergibt mehr Sinn die CPU mit "echter" Arbeit zu beschäftigen als nur sowas wie in einer Schleife einen Wert zu inkrementieren. Einfach weil es nicht ausgeschlossen ist, dass solch ultra einfache Aufgaben ohne echte Belastung irgendwo (vereinfacht gesagt) abgekürzt werden können. Sowas geschieht während der Laufzeit unter der Decke mehr oder weniger von allein - weil sogut wie immer versucht wird, möglichst optimal zu arbeiten.
Das Verhalten wird einerseits auch mehr nachvollziehbar, wenn du längere Phasen der Belastung hast (dann verfälschen Leerlaufzeiten nicht mehr das Ergebnis so stark) und andererseits, wenn du mit echten Daten arbeitest. Keine Ahnung, eine Liste mit mehreren tausend random generierten Strings, die du Buchstabe für Buchstabe der größe nach sortieren lässt - oder Zahlen, die du Ziffer für Ziffer nach der Größe sortieren lässt oder was auch immer - also ne echte Aufgabe anstatt nur nen Zähler hochzuzählen... Ich denke es ist nachvollziehbar, was ich versuche damit auszudrücken?
Lass mich raten, du hast es selbst immer noch nicht probiert?
Ich brauch nichts probieren, was technischer nonsens ist...
"
2 GHz Basis Takt auf einem Kern, Diagramm zeigt 100% Last an.
1GHz Takt würde dann nur noch 50% Last darstellen, obwohl die Auslastung die selbe ist, da aber mehr Zeit vergeht bis das Programm durch ist, sind es eben nur 50% Auslastung."
-> der zweite Teil ist so einfach nicht zutreffend. Bei nur 1GHz ggü. der "Diagramm zeigt 100% bei 2GHz an" Angabe wäre die Auslastung immernoch 100% - nur würde man bei exakt den gleichen Berechnungen in etwa doppelt so lange die 100% sehen, eben weil der Prozessor in dem Fall in etwa doppelt so lange zur Berechnung brauchen würde. -> der Knackpunkt ist, wie ich oben schon erwähnte, die Berechnungsdauer, die nach der Geschwindigeit des Prozessors/des Prozessor Kerns variiert. Angezeigte 50% Auslastung bei 2GHz heißt aber auch nur 50% der Zeit hat(te) der Prozessor Arbeit - genau so wie 50% bei 4GHz. Man schafft halt nur entsprechend mehr Aufgaben in der gleichen Zeit -> oder runter gebrochen auf die absolute Arbeit, dann benötigt man nur die halbe Zeit.