Wieso kann Windows XP so schlecht mit Dual Core CPUs umgehen
-
Ich habe gerade festgestellt, daß die Lastverteilung von Windows XP Prof. auf die beiden CPU Kerne meines Core2Duos ziemlich schlecht ist.
Dazu habe ich Furmarkt und danach Prime 95 gestartet.
Überprüft habe ich das ganze mit einem geöffneten Speedfan Fenster, daß
die Auslastung der beiden CPU Kerne gut anzeigt.Als nur Furmarkt gestartet war, war der erste Kern komplett ausgelastet, während der 2. gerademal zu 30 % belastet war.
Also dachte ich, wenn ich jetzt noch Prime95 starte, dann dürfte der 2. Kern ebenfalls zu 100 % belastet sein.
Aber dem war nicht so.
WinXP belastete den zweiten Kern mit zusätzlich gestartetem Prime95 nur auf ca. 75 %, während Furmarkt zur gleichen Zeit langsamer wurde.
D.h. Prime95 sprang irgendwie immer zwischen Core 1 und 2 hin und her, während beide Kerne nie voll ausgelastet waren.Also habe ich den Windows Task Manager geöffnet und Furmarkt nur dem 1. Kern zugewiesen und Prime95 nur dem 2. Kern.
Das Ergebnis war Phänomenal.
Die Frameraten von Furmarkt stiegen wieder deutlich an und Prime95 nutzte nun den zweiten Kern wie gedacht zu 100 % und lies den ersten Kern in Ruhe.Die Core Auslastung war in Speedfan dann bei beiden Kernen auf 100 %.
Daraus schlußfolgere ich also folgendes.
Die automatische Lastverteilung von Windows XP ist Mist, da es den zweiten CPU Kern nicht gut auslasten kann, erst wenn man manuell nachhilft funktioniert das ganze deutlich besser.
Ob das bei Windows 7 oder Vista besser ist, dazu kann ich nichts sagen, da ich diese beiden OS nicht habe.
Heute Abend werde ich aber definitiv mal testen, ob das unter Linux auch so beschissen ist.Normalerweise dürfte so etwas aber selbst bei WinXP nicht passieren, denn Mainboards mit 2 CPUs gab es schon seit dem Pentium 2.
Der einzige Unterschied heute ist doch nur, daß 2 und mehr Kerne auf einem Die sind, die Verbindung etwas effizienter ist und sich die Kerne einen Teil des Caches teilen.
-
Nun ja, wer mit einem einem Stresstest für die GPU die CPU auslasten will...
Mein XP kann jedenfalls die 8 vorhandenen Kerne völlig auslasten, so ich denn auch CPU-Last erzeuge.
-
Interessante Beobachtung, muss ich auch mal testen. Aber wirklich vollständige Auslastung habe ich eigentlich so gut wie nie. :xmas1:
-
Furmark == GPU schrieb:
Nun ja, wer mit einem einem Stresstest für die GPU die CPU auslasten will...
Das geht, weil so gut wie jeder 3d Benchmark oder auch jedes 3d Spiel darauf verzichtet auch noch Anwendungen neben sich zu tolerieren.
Probierst einfach aus, starte Furmark und die Auslastung der CPU ist auf 100 %.
Wäre es anders, dann müßte die CPU immer noch bei sagen wir mal 10-50 % sein, so wie z.b. beim Brower, dem ist aber nicht so.
Daher gilt, ja, du kannst mit einem GPU Stresstest die CPU auslasten.
Und es ging hier auch nicht darum, die CPU ans Temperaturlimit zu bringen, dafür gibt's dann wieder andere spezielle Tools.Mein XP kann jedenfalls die 8 vorhandenen Kerne völlig auslasten, so ich denn auch CPU-Last erzeuge.
Dann gilt bei dir, wer mißt, mißt Mist.
-
Multicore schrieb:
Das geht, weil so gut wie jeder 3d Benchmark oder auch jedes 3d Spiel darauf verzichtet auch noch Anwendungen neben sich zu tolerieren.
Falsch. Wenn ein Spiel oder Benchmark, der nicht gerade den CPU unter Last testen soll, den CPU auf 100% auslastet, ist der CPU zu schwach.
Es müssen andere Anwendungen nebenher laufen. Ob das das Spiel toleriert oder nicht ist egal, weil es dabei recht wenig zu sagen hat
-
Multicore schrieb:
Probierst einfach aus, starte Furmark und die Auslastung der CPU ist auf 100 %.
Hab ich gemacht, sind nur 25% (bei einem C2Q bedeutet das: 3 Kerne im Leerlauf, einer unter Vollast).
Ansonsten sieht das Ergebnis bei mir so aus:
56 FPS Avg. bei 3 Kernen unter Last 58 FPS Avg. ohne CPU-LastAlso mein XP scheint die Last ganz gut zu verteilen. 2 Frames Unterschied sind nicht die Welt und schon gar nicht 'deutlich' zu nennen.
-
zwutz schrieb:
Multicore schrieb:
Das geht, weil so gut wie jeder 3d Benchmark oder auch jedes 3d Spiel darauf verzichtet auch noch Anwendungen neben sich zu tolerieren.
Falsch. Wenn ein Spiel oder Benchmark, der nicht gerade den CPU unter Last testen soll, den CPU auf 100% auslastet, ist der CPU zu schwach.
Spiele werden aber so nicht programmiert.
Das gilt für Anwendungen die mit anderen Anwendungen nebenher laufen müssen, da achtet man darauf, daß die Anwendung nicht wirklich jede Resource in Anspruch nimmt.Bei Spielen ist das aber nicht so und ist auch bis auf ganz wenige Ausnahmen nie so gewesen.
Nimm einfach ein uraltes Spiel und laß es laufen und du wirst sehen, daß selbst Popelspiele die CPU bis zum Ende auslaten.Der Hauptgrund ist nämlich der, daß Spiele meist auf billige while Schleifen setzten, denn die sind einfacher zu programmieren als Interrupts.
Meist sieht das dann z.B. so aus:
do
while (!keypressed())Es müssen andere Anwendungen nebenher laufen. Ob das das Spiel toleriert oder nicht ist egal, weil es dabei recht wenig zu sagen hat
Probiers einfach aus.
Schreib ein Kommandozeilenprogramm das mit einer while Schleife auf einen Tastendruck wartet und die Schleife ständig wiederholt.
Die CPU wird dann unter Last laufen wenn du das Ding startest.Das ganze Problem ist dem geschuldet, daß man bei Computerspielen sowieso davon ausgeht, daß das Spiel die ganze Zeit im Vollbildmodus arbeitet und der User eh nichts anderes macht. Und natürlich weil man so schneller beim Programmieren ans Ziel kommt und sich auf die wichtigeren Spielinhalte konzentrieren kann.
Der nächste Grund ist dann noch, daß für Spielenetwicklung oft sowieso kein Geld da ist, und die Progger unter Zeitdruck arbeiten weil das Spiel ja mal wieder in 2 Monaten fertig sein muß und man die Zeit sowieso viel zu gering angesetzt hat.So etwas passiert bei Anwendungssoftware nie, weil diese halt immer mit anderen Anwendungen coexistieren müssen und man da schnell merken würde, wenn eine Anwendung die CPU unter Last bringt.
-
Furmark == GPU schrieb schrieb:
Multicore schrieb:
Probierst einfach aus, starte Furmark und die Auslastung der CPU ist auf 100 %.
Hab ich gemacht, sind nur 25% (bei einem C2Q bedeutet das: 3 Kerne im Leerlauf, einer unter Vollast).
CPU ist auf 100% = 1 Kern
Wenn die 3 Kerne also im leerlauf sind ist alles richtig.
Der 4. Kern ist unter Last.Das Problem liegt an deinem Programm, da es die Last der Kerne nicht einzeln anzeigt sondern alle zusammenzählt. Daher auch die 25 %.
Letzten Endes ist es aber dennoch richtig, da 1 / 4 Kerne = 25 %. D.h. ein Kern läuft bei 100 %, genau wie ich es sagte.
Würde deine Behauptung stimmen, daß Furmarkt die CPU nicht belastet, dann müßtest du irgendwas so mit 3-11 % bei deinem Programm rausbekommen, du hast aber 25 %, also 100 % für den einen Core.
-
Und jetzt? Die Software muss natürlich mitspielen, sonst kann ein OS die nicht auf mehrere Kerne verteilen. Anscheinend ist sie halt nicht dahingehend unterstützend programmiert.
-
ererere schrieb:
Und jetzt? Die Software muss natürlich mitspielen, sonst kann ein OS die nicht auf mehrere Kerne verteilen. Anscheinend ist sie halt nicht dahingehend unterstützend programmiert.
Es ging um 2 Prozesse die das OS nicht richtig verteilt.
Siehe 1. Posting
-
Tut es aber doch, XP verteilt sogar 4 Prozesse recht effektiv:
56 FPS Avg. bei 3 Kernen unter Last
58 FPS Avg. ohne CPU-LastGleiches Bild hab ich auf dem 8-Kerner, auch hier hat XP noch keine Probleme.
Vielleicht solltest du deinen Rechner mal auf Malware oder veraltete Treiber überprüfen.
-
gefurmarked schrieb:
Tut es aber doch, XP verteilt sogar 4 Prozesse recht effektiv:
Tut es nicht, siehe 1. Posting.
-
Ich habe Windows XP Professional x64 SP2. Das hat einen Windows Server Kernel (NT). Es ist mit dieser Bit-variante defenitiv schneller bei einem Dual Core!!!
-
Multicore schrieb:
gefurmarked schrieb:
Tut es aber doch, XP verteilt sogar 4 Prozesse recht effektiv:
Tut es nicht, siehe 1. Posting.
Wie du meinst. Ich hab zwar mit den gleichen Programmen die Last erzeugt und bei mir tritt das (Fehl-)Verhalten nicht auf, aber wenn es dich glücklich macht darauf zu beharren... Wer weiß, was bei dir nicht stimmt, es ist aber mit Sicherheit kein grundsätzliches Multicore-Lastverteilungs-Problem von XP.