
Konkret schaue ich mir entweder den i5-3570k oder den FX-8350 an, aber es brachte mich zu einer allgemeineren Frage, nämlich, wie mehrere Kerne das allgemeine Multitasking verbessern können.
Ich habe viele Testberichte, Benchmarks usw. gelesen und alle sagen im Grunde dasselbe: Der schneller getaktete 4-Core I5 schlägt den langsamer getakteten 8-Core FX in den meisten Anwendungen, es sei denn, diese Anwendung ist speziell darauf programmiert, mehr als 4 Kerne zu nutzen. Vor allem Spiele laufen auf dem i5 besser.
Aber beim Lesen fiel mir auf, dass so gut wie alle Benchmarks im Vakuum durchgeführt werden. Das heißt, dieser Benchmark oder diese Software ist das Einzige, was getestet wird. Das ist zwar gut für das Testen dieser speziellen Software, aber es ist kaum ein reales Szenario.
Beispielsweise kann es sein, dass ich zu jedem Zeitpunkt des Tages mehrere Browser mit mehreren Tabs geöffnet habe, vielleicht Photoshop oder Visual Studio, mehrere Hintergrundprogramme (Antivirus, Steam, Keepass usw.). Und das an einem ruhigen Tag.
Meine Frage ist also: Theoretisch ist es zwar so, dass der schnellere 4-Kern-Prozessor einzelne Softwareteile für sich genommen schneller ausführen kann, aber könnte ein 8-Kern-Prozessor nicht besser darin sein, mehrere Softwareteile gleichzeitig auszuführen, auch wenn diese nicht unbedingt für 8-Kern optimiert sind?
Antwort1
Linux CPU-Auslastung
Eine nützliche Maßnahme ist das Linux-Konzept derCPU-Auslastung. Stellen Sie sich grundsätzlich vor, dass jeder CPU-Kern 1,00 verfügbare Lasteinheiten hat und dass jede Aufgabe, die mit 100 % eines Kerns ausgeführt wird, 1,00 verwendete Lasteinheiten sind. Für einen verarbeitungsintensiven Server entspricht die ideale Last wahrscheinlich genau der Anzahl der CPU-Kerne (4,00 Last für 4 CPU-Kerne).
Eine Busy-Schleife (etwa „while(true)“) kann 100 % einer CPU beanspruchen, also 1,00 Ladeeinheiten. Ein Single-Thread-Benchmark erreicht ebenfalls einen Spitzenwert von 1,00. Ein Multi-Core-optimierter Benchmark kann mehr Kerne beanspruchen, bis zu den 8,00, die beim FX-8350 verfügbar sind.
But, most of your apps (Chrome + Firefox open, Photoshop, Visual Studio), don't consume that much CPU when they're running in the background. True, they can run on multiple cores, but if they only use 10% of the available time (0.10 load units), those four apps only add up to a 0.40 load, and you see little benefit from having more than one CPU core. Similarly, applications busy blocking on disk or network accesses would not be using CPU time while they wait.
Average Load > 4.00
For cases when your application load is between 4.00 and 8.00, these are likely where performance of the FX-8350 would stand out. A 5.00 load on a 4-core CPU could lead to lots of contention for CPU resources, with task switching between tasks compounding the overhead involved.
Average Load < 4.00
Your question seems to be about the times when the math isn't quite so clear cut, though: whether 8 cores would be better on a sub-4.00 workload. For a fairly constant, server-type of workload, you can run some benchmarks and see if there is actually any benefit. For a constantly changing, day-to-day computing workload, there's no clear winner.
Antwort2
It depends very much on the application, OS, and how it executes its work.
If an application is designed to be single-threaded, no additional cores will help its performance. However, you could run additional applications using the other cores, IF the operating system was smart enough to distribute the work this way. Therefore additional cores may provide a small additional benefit, especially for multiple applications running at once.
Additional cores do not provide more I/O capability. So if an application is mostly I/O bound performance increase from additional cores may not be substantial.