Was du als unsinnig empfindest oder nicht, spielt glaube ich eine andere Rollo. Alle MacBook Pros mit i7 haben keine 2, sondern 4 Kerne.
Das stimmt so nicht, in den 13" stecken Dualcore i7.
Den gibt es allerdings noch nicht und so wie die Sache aussieht, wird es ihn in den nächsten 10 Jahren auch nicht geben. Und ideal ist nicht 1 Kern, sondern mind. 2 Kerne.
Der ideale Prozessor hat einen Kern. Das kommt dadurch, dass die CPU per Definition die Einheit für die sequentiellen Berechnungen darstellt. Nur wenn die komplette Leistung die ein Prozessor liefern kann für eine sequentielle Aufgabe zur Verfügung steht, kann man da in meinen Augen von ideal sprechen.
Und das kann ein Dualcore nicht. Mit zunehmender Kernanzahl wird es dann immer schlimmer. Jeder Kern bringt weniger als sein Vorgänger.
Aus diesem Grund spricht man von der Single-Thread Performance, da sie ein enorm wichtiger Faktor ist. Viel wichtiger als die Theoretische Leistungsfähigkeit bei der Ausnutzung aller Kerne. Wenn man danach ginge, dürfte es gar keine CPUs mehr geben weil GPUs mit ihren 2000-3000 Shaderkernen erheblich mehr Rechenleistung zur Verfügung stellen als eine CPU das tut.
Also nochmal, die Hauptaufgabe der CPU ist die sequentielle Verarbeitung. Sequentiell bedeutet auch, dass immer nur ein Kern an der Aufgabe arbeiten kann. Bei einem Single Core kann für diese Aufgabe dann die komplette Rechenleistung genutzt werden, Bei einem Dualcore 50%, Quadcore 25%, Octacore 12,5% usw.
Das ist der Grund warum auf dem PC Markt bei 2-4 Kernen die Sache gestoppt hat(außer irgendwelche versuche von AMD die Benchmarkblenderei über viele Kerne auch beim PC zu versuchen).
Oder anders ausgedrückt. Ein Kern kann seine Rechenleistung immer auf zwei Aufgaben aufteilen, zwei Kerne können jedoch nicht immer an einer Aufgabe zusammen arbeiten.
Das ist eventuell bei Programmen nicht unbedingt der Fall, bei Games aber kinderleicht.
Selbst AAA Titel im PC Bereich tun sich schwer einen Quadcore so mit Threads zu füttern, dass sie sich nicht gegenseitig blockieren. Von Kinderleicht kann da keine Rede sein. Das ist perfekte Parallelisierung nie, weswegen sie jeder meidet wenn er bei komplexen Programmen die Möglichkeit dazu hat. Nicht genug Single Thread Performance zu Verfügung zu haben ist ein Fluch und 4-8 völlig unabhängige Threads zu Programmieren, die auch alle noch gleiche Laufzeiten aufweisen müssen, ist die Pest. Außer bei Benchmarks halt, weil man da einfach 4-8 mal das gleiche tut.
Bitte was? Warum sollte bei einem Octa-Core nur 20% CPU für eine App zur Verfügung stehen und was hat ein ARM Prozessor mit einem Intel Prozessor zu tun?
Einer App steht IMMER die volle Restgeschwindigkeit zur Verfügung. Wie viel davon allerdings genutzt wird, ist eine andere Sache. Dann ist es abhängig, für wie viel Kerne die App programmiert ist. Anspruchsvolle Spiele nutzen bei Android, sowie auch bei iOS die maximal verfügbare Geschwindigkeit.
Die volle Geschwindigkeit bekommt man bei den Samsung nur, wenn diese einen Benchmark erkennen. Die eigentliche, dem User zur Verfügung stehende, Leistung ist geringer. Das war ähnlich wie die Prüfstandschummelei vor ein paar Monaten ein Riesen Thema.
Was ich aber sagen wollte ist: die allermeisten Anwendungen, vermutlich über 90%, sind im Endeffekt nicht so programmiert dass sie ordentlich parallel auf mehreren Kernen laufen. Selbst wenn man auf zwei Kernen 25% angezeigt bekommt, ist es oft nur der Scheduler der die Threads immer zwischen den Kernen hin und her wirft. Manche Apps bekommen gerade noch 2 Threads halbwegs hin. Bei 4 wird die Luft merklich dünn. Selbst bei PC Spielen für viele Millionen Dollar.
Hat man also so ein Sequentielles Programm, was einfach die allermeisten sind, dann liegen im Endeffekt 3 Hochleistung und 4 Energiesparkerne brach. Viele Aufgaben können auch gar nicht ordentlich parallelisiert werden. In den Fällen liegt dann auch 80% der theoretischen Prozessorleistung brach.
Im Gegenzug vereinfacht Single-Thread Performance alles. Mit ein Grund warum die Apps bei Apple immer besser liefen. Mit Single Thread Performance ist es einfach leichter als wenn man in die parallele Programmierung gezwungen wird.
Achso.. keine Ahnung wo du das mit dem "die CPU weiß nicht welcher Kern verwendet werden soll" her hast, aber das ist doch quatsch. Es wird immer so viel Leistung verwendet, wie von einem Programm benötigt und da weiß der Prozessor immer, wann er von stromsparend auf leistungsstark switchen muss und umgekehrt. Das funktioniert überall so. Bei Qualcomm, Tegra, Mediatek, Exynos, Apple, Intel, AMD usw. Überall das gleiche Prinzip.
So trivial ist es nicht. Außerdem hat das der Scheduler zu entscheiden und nicht die CPU. Es ist ziemlich schwierig vorauszusehen wieviel Leistung ein Prozess in naher Zukunft benötigt, zumindest wenn es energetisch im Rahmen bleiben soll. Wenn es einfach wäre, gäbe es diese 4+4 Technik gar nicht, weil sonst ein einziger Energiesparkern locker reichen würde.