Wie kann eine Single-Threaded-Anwendung wie Excel 2003 mehr als 50% einer Hyperthread- oder Dual-Core-CPU im Taskmanager beanspruchen?

2829
Lunatik

Ich warte darauf, dass Excel eine Neuberechnung abschließt, und ich stelle fest, dass die vom Task-Manager gemeldete CPU-Auslastung eines Pentium 4 mit Hyperthreading gelegentlich 51% oder 52% erreicht. Wie macht dies eine Single-Threaded-Anwendung wie Excel 2003?

Ist es nur ein Rundungs- / Schätzungsfehler seitens des Task-Managers? Oder hat es etwas mit der HT-Zuteilung zu tun, dh ich würde das nicht auf einer echten Dual-Core- oder Dual-CPU-Maschine sehen?

3

3 Antworten auf die Frage

6
kbyrd

Ich wäre überrascht, wenn Excel 2003 Single-Threading ist. Es ist wahrscheinlich, dass mindestens ein UI-Thread und ein Worker-Thread vorhanden sind. Wird die Benutzeroberfläche während der Berechnung neu gezeichnet? In diesem Fall ist Excel kein Singlethreading.

Genau genommen handelt es sich höchstwahrscheinlich um eine Neulackierung oder einen Eingabethread. Excel 2003 ist in seinen Berechnungen nicht "Multithreading", aber das bedeutet nicht, dass das gesamte Programm natürlich in einem einzigen Thread ausgeführt wird. Gnoupi vor 14 Jahren 0
Anstatt über die inneren Abläufe eines Closed-Source-Programms zu streiten, lässt sich der Task-Manager nicht einfach dazu bringen, Ihnen die Spalte "Threads" zu zeigen. Es listet die Anzahl der Threads in einer Anwendung auf ... marcusw vor 14 Jahren 1
Ich sehe, dass Excel 5 Threads hat, also macht das absolut Sinn. Ich nahm die Vermutung an, dass, da die Versionen vor 2007 von Excel nur einen Berechnungsthread haben, das Programm nur einen Thread verwendet, im Nachhinein etwas albern! :) Lunatik vor 14 Jahren 1
Auch das Betriebssystem ist multithreaded. Während Excel ausgeführt wird, weist es das Betriebssystem an, alle möglichen Dinge zu tun. Das Betriebssystem kann in seinen eigenen Threads alle möglichen Aufgaben ausführen, z. B. das Abrufen von Dateien vor dem Abrufen, das Abspeichern geänderter Seiten auf die Festplatte, das Zurücksetzen von zurückgegebenen Speicherseiten, das Neuzeichnen des Bildschirms usw. David Schwartz vor 12 Jahren 0
1
ted_j

MS Windows sperrt eine Anwendung standardmäßig nicht für einen Kern. Sie sehen also die Manifestation von Excel, das auf dem einen oder dem anderen Kern ausgeführt wird.

Sie können dieses Verhalten (vorübergehend) über den Task-Manager ändern.

Wenn Sie Excel ausführen, starten Sie taskmgr.exe, gehen Sie zur Prozessliste und klicken Sie mit der rechten Maustaste auf den Prozess. Sie können die Affinität für den Prozess festlegen.

Wenn Sie es spezifisch für den einen oder den anderen Kern markieren, können Sie (wieder in taskmgr) sehen, dass es nur auf einem Kern läuft.

1
Joe Internet

Nun, was wäre, wenn Sie einen einzelnen Core / Thread-Prozessor hätten? Wie kann Excel mehr als 50% davon nutzen? Wenn Sie über zwei Kerne verfügen und jeder einen Thread ausführen kann und Excel auf einem Kern ausgeführt wird, können bis zu 100% dieses Kerns verwendet werden.

Mit Hyper-Threading verfügen Sie nicht über zwei "echte" Threads pro CPU-Kern, sondern über zwei "virtuelle" Threads. Die 2 Threads müssen ihre Ausführungsressourcen freigeben. Daher ist es möglich, dass einer der Threads mehr Ressourcen verwendet als der andere, was eine Nutzung von über 50% anzeigen kann.

Ich habe es gerade auf meinem Heimcomputer ausprobiert, eine C2D, und das Gleiche wird beobachtet, daher kann es mit HT an sich nichts zu tun haben. Lunatik vor 14 Jahren 1