it-swarm.com.de

Warum verwendet meine CPU hauptsächlich nur einen Kern?

Es wird jeweils zu 100% von einer der CPUs geladen. Ist das mit Absicht? Sollte es nicht versuchen, 25/25/25/25 zu tun?

Es ist ein Intel i5-3320M - 2,60 GHz x 4

Mein Freund auf einer Win10 ist Load-Balancing "richtig" Laden der gleichen Datei. (Es ist ein wahnsinnig großer .osm, den wir in IntelliJ analysieren.)

Image of my System monitor

1
sech

4 × 0,25 ist dasselbe wie 1.

Es sieht so aus, als ob eine Single-Threaded - Task auf mehreren CPUs im Round-Robin-Verfahren ausgeführt werden soll. Auf diese Weise verteilt Windows die rechnerische und damit die elektrische und thermische Last auf verschiedene Chipbereiche, um die Wärme zu verbessern Dissipation. Dies hat nichts mit Multithreading zu tun und ist nur ein Artefakt der verschiedenen Planungsstrategien von Windows und Linux.

2
David Foerster

Es sieht so aus, als hätten Sie ein sehr beschäftigtes Programm (kein Multithread-Programm), das eine CPU belegt. Ich wette, Sie finden einen Prozess mit fast 100% CPU-Auslastung in einem abnormalen Zustand ("fast abgestürzt") - z. Firefox mit vielen offenen Tabs und JavaScript-Saugkraft. Wenn Sie ps aux auf der Konsole ausführen, sollten Sie den Schuldigen finden. Der stetig steigende Speicherverbrauch könnte auch durch diesen Prozess verursacht werden. Die meisten anderen Prozesse laufen mehr oder weniger gut verteilt auf den anderen CPUs ab, sodass Sie mit einer Auslastung von 10 bis 20% rechnen müssen.

1
sruetti

Dies ist nur möglich, wenn das Programm Multithreading zulässt. Wenn die Task selbst Multithreading unterstützt, kann sie nicht parallelisiert werden. Zum Beispiel das Newton-Raphson-Verfahren.

Ihre CPU verwendet jedoch nicht in erster Linie jedes Mal den gleichen Kern, sondern wählt einen der Kerne nach dem Zufallsprinzip für das Programm aus. Zum Beispiel erreicht ein anderer Kern 100%, wenn das Programm jedes Mal ausgeführt wird.

System Monitor Graph:

enter image description here

0
spharish