Pourquoi les téléphones Android ont-ils plus de cœurs que d'ordinateurs?

80

Les ordinateurs portables ont généralement au plus quatre cœurs et les doubles cœurs sont probablement plus courants. J'ai récemment changé de quadcore en dualcore et je peux confirmer qu'il existe un nombre limité de cas d'utilisation pour quadcore, même avec des tâches gourmandes en ressources CPU.

D'autre part, aux téléphones mobiles, les quadcores, les hexacores et les octacores semblent être courants. Pourquoi? Quelles tâches peuvent les utiliser?

Je comprends que big.LITTLE peut faire partie de la réponse. En d'autres termes, le principal avantage de tant de cœurs n'est pas la possibilité de tous les utiliser simultanément, mais bien l'utilisation d'un cœur dont la consommation électrique est adaptée à la charge de travail actuelle. Cependant, par exemple, le Snapdragon 625 dispose de huit cœurs Cortex-A53, ce qui ne semble pas être un cas pour big.LITTLE.

Peut-être que l'architecture ARM a un point inférieur de performances optimales par watt. Autrement dit, le fait d’avoir un cœur unique optimisé pour une performance optimale par watt entraîne une performance inférieure sur ARM par rapport à Intel. Ainsi, davantage de cœurs sont utilisés afin de fournir les performances. Ceci est juste une hypothèse.

Mais même dans ce cas, je ne vois pas quelle charge de travail peut utiliser efficacement, par exemple, huit cœurs sur un téléphone portable. Sur les ordinateurs portables, je peux en imaginer quelques-uns comme une compilation complète (non incrémentielle) d'un projet. Mais sur les téléphones?

  • Les jeux peuvent être gourmands en performances, mais ils nécessitent généralement des performances de GPU plutôt que de processeur, n'est-ce pas?
  • Théoriquement, plusieurs cœurs pourraient accélérer la compilation Android Lollipop / Marshmallow AOT lors de l'installation ou de la mise à niveau (c.-à-d. La phase «Optimisation des applications 3/121»). Je ne suis toutefois pas sûr que cela puisse utiliser plusieurs cœurs. Autant que je me souvienne du code, une seule application est en cours de compilation, mais il existe peut-être un certain parallélisme dans le processus de compilation lui-même.
  • De plus, Android 7+ pourrait utiliser plusieurs cœurs lors de la compilation. Mais comme il compilerait au ralenti et en charge, le bénéfice semble plutôt minime. Au moins quand on charge le téléphone la nuit - je ne me soucie vraiment pas de savoir si cela prend 30 minutes ou deux heures dans un tel scénario.
vak
la source
Comme je l'ai souligné dans ma réponse, gardez à l'esprit que vous semblez regarder les choses à l'envers. L'exécution de base / parallèle est la norme, ce n'est pas votre téléphone qui est une anomalie, mais le processeur de votre PC qui est une anomalie.
motoDrizzt
4
Votre question est erronée, les PC peuvent avoir plus de cœurs que de téléphones. intel.com/content/www/us/en/products/processors/core/x-series/… Et cela n'entre même pas dans les ordinateurs de classe serveur, qui peuvent avoir des dizaines voire des centaines de cœurs. (Et certains supercalculateurs entrent dans la gamme des milliers de cœurs.)
JAB
3
@JAB Bien sûr, mais je ne parle pas du nombre maximum de cœurs, mais du nombre typique. Pour les ordinateurs portables, plus que les quadcores sont assez rares, mais vous pouvez trouver une exception, peut-être avec Xeon. Pour les téléphones mobiles, même les octacores semblent être relativement courants.
v6ak
4
"Je suis récemment passé de quadcore à dualcore et je peux confirmer que le nombre de cas d'utilisation du quadcore est limité, même pour les tâches gourmandes en ressources CPU." - Pouvez-vous développer et expliquer comment vous en êtes arrivé à cette conclusion?
Abdul
@Abdul Cela provient principalement de mes observations (voir la charge du système avec htop ou un outil similaire) et partiellement de mes conclusions. Même certains taksk où la parallélisation (par exemple, le rendu utilisant OpenScad) sont mono-cœur. Firefox (ESR) consomme généralement au plus un noyau. Compilation incrémentale - je ne l’ai pas mesurée, mais intuitivement, il n’ya pas beaucoup d’opportunités de trouver des tâches indépendantes. (La compilation complète est un cas différent.)
v6ak

Réponses:

63

Comme vous l'avez déjà noté, la stratégie de combinaison big.LITTLE (techniquement, les clusters HMP , Heterogen Multi-Processing ) est la principale raison de l'existence de tant de noyaux (et parfois même de très nombreux). Un appareil mobile est souvent soumis à plusieurs scénarios, ceux à charge lourde et ceux à charge légère inclus.

Helio X20 de MediaTek est un exemple extrême pour le grand public, avec 2 noyaux A72 orientés performances, 4 noyaux A53 symétriques et 4 noyaux A35 éconergétiques. C'est très flexible à travers différents cas d'utilisation. Cependant, je pense que 8 noyaux 2 groupes est généralement suffisant.

Il existe également un autre exemple similaire à un bureau, la série Snapdragon 800 (S 800, S 801 et S 805) de Qualcomm. Il n'y a que 4 cœurs de la même microarchitecture dans chaque SoC, avec 2 cadencés plus haut et 2 cadencés plus bas. Qualcomm a fabriqué ces SoC car ils étaient très confiants en leur microarchitecture (Krait 400 et Krait 450).

Pour les jeux, même s’ils exigent apparemment des performances de GPU plutôt que de processeur, ils sollicitent toujours beaucoup le processeur. Un GPU ne peut pas fonctionner seul sans une autre source fournissant des données à traiter. C’est l’une des tâches majeures que le processeur accomplit pendant que vous jouez. Dans la plupart des cas, le processeur graphique ne restitue que les graphiques, tandis que tous les autres travaux, tels que le chargement de données, de ressources et d’actifs, ainsi que le calcul des mécanismes du jeu, tels que le système, l’environnement et la physique, sont effectués par la CPU. Vous n'observerez pas de fréquence d'images plus élevée si vous mettez à niveau votre processeur graphique tout en restant sur un processeur bas de gamme.

Une raison secondaire est la façon dont Android utilise les ressources du processeur . Android crée à peu près son propre environnement d'application. Il n'utilise que des codes (et des API) de Java, mais il possède sa propre machine virtuelle appelée Dalvik, qui a ensuite été remplacée par ART (API de niveau 21). Les APK ont leurs codes exécutables dans un format "neutre", un peu comme les .classfichiers Java. Avant leur exécution, les codes sont compilés une fois de plus dans les instructions natives de la machine [1] . Le processus de compilation est multi-thread et peut utiliser plusieurs cœurs pour améliorer les performances.
Et lorsqu'une application est en cours d'exécution, plusieurs autres processus et mécanismes (tels que le récupérateur de place) s'exécutent parallèlement ou parallèlement à l'application. Un plus grand nombre de cœurs peut permettre aux processus de support de s'exécuter plus efficacement, ainsi que l'application principale.
1. Si vous utilisez un identificateur de type de fichier, vous constaterez que les fichiers de dex "optimisés" sont au format ELF, alors que les fichiers de "neutres" sont uniquement dans un format qui leur est propre.

Une autre raison moindre est que les cœurs ARM ne peuvent pas fonctionner aussi rapidement qu'une puce Intel x86 . La microarchitecture Intel x86 peut être datée de 1976, lorsque la puce Intel 8086 a commencé à être conçue, ce qui signifie que le x86 s'est développé sur une longue période. Un cœur ARM Cortex-A73 haut de gamme et moderne est aussi puissant qu'un cœur Intel Clarkdale, à l' instar du Core i5-660 (GeekBench, single-core). Ceci est dû au fait que x86 est une microarchitecture CISC alors qu'ARM est un RISCmicroarchitecture. Vous ne voulez sûrement pas un téléphone qui devient lent avec seulement deux applications actives. Plus de noyaux aideront à soulager la pression. C'est pourquoi les systèmes sur puce à double cœur ne sont relativement populaires que sur les montres intelligentes. Qui a besoin de performance sur une montre intelligente?

Fait intéressant, plus de cœurs produiront moins d'énergie qu'un seul cœur à la même charge . La relation entre la fréquence du processeur et la consommation d'énergie est plus que linéaire. Deux fois la fréquence entraîne toujours une demande plus de deux fois, voire même trois fois ou quatre fois plus de puissance, tout en offrant une performance deux fois inférieure (en raison d'autres limitations de ressources telles que la mémoire cache ). Ainsi, 4 noyaux peuvent facilement battre un seul noyau à la même charge, offrant ainsi de meilleures performances tout en consommant moins d'énergie.

Lectures complémentaires:

iBug
la source
1
Je me souviens avoir lu ou observé quelque part que le noyau Linux avait travaillé à l'origine sur une bonne prise en charge multicœur centrée sur les superordinateurs, il y a de nombreuses années, et que ces efforts se sont avérés utiles "à l'avenir" (maintenant) pour les smartphones, comme une sorte de " accident "
Marc.2377
3
Cette réponse ne semble pas réellement répondre à la question, même si elle est acceptée. Cette réponse semble répondre "Pourquoi pourrais-je avoir besoin de noyaux supplémentaires dans mon téléphone?" ce qui n'est pas la question à résoudre. Cela n'explique pas la différence entre PC et téléphone. Les arguments invoqués pour expliquer pourquoi un téléphone peut nécessiter plus de cœurs s’appliquent également aux ordinateurs de bureau, en particulier ceux relatifs aux jeux.
Aaron
8
L’affirmation de 1976 sur les processeurs x86 est quelque peu trompeuse. Les noyaux ARM peuvent remonter au projet Acorn RISC Machine en 1983, sept ans plus tard à peine. À certains égards, le fait d’être plus récent est un avantage. BRAS.
user1937198
2
De plus, RISC vs CISC n’a rien à voir avec cela, les processeurs Intel exécutent un noyau RISCish en interne (uops). La vraie différence est out ou order vs in order order.
user1937198
5
La chose x86 est tout à fait ... fausse. Ce sont des puces superscalaires; les implémentations de base n’auraient pas une performance aussi bonne que le pipeline RISC classique utilisé dans la plupart des puces ARM. Il est également intéressant de noter que la liaison de cœurs avec des conceptions super-scalaires est TRÈS difficile en raison de l'exécution dans le désordre et de la hiérarchie du cache. Personne ne savait ce qui leur manquait, donc il n'y avait pas vraiment de demande. Si vous remarquez que certaines des nouvelles itérations d’Intels ne figurent pas dans les puces à nombre de cœurs élevé - elles sont sur Broadwell, c’est parce qu’elles ont supprimé la synchronisation - par manque d’espace.
Alec Teal
15

La raison est aussi simple que compliquer.

La réponse courte est "parce que le marché de la téléphonie mobile n'a jamais été et n'est pas conduit par Intel".

La réponse longue est bien trop longue pour résumer ici, mais le concept de base est qu'Intel domine le marché des PC depuis des années avec tous les moyens possibles, au point de payer et de corrompre (et d'être condamné à une amende pour cela) pour que ses processeurs soient les premier et unique choix pour les fabricants de PC.

Avoir le contrôle total du marché a permis à Intel de gonfler les prix des processeurs tout en décidant artificiellement quelles fonctionnalités et quelle puissance de traitement les utilisateurs auraient pu souhaiter, et si vous analysez un peu l'historique d'Intel, vous remarquerez que sa principale force réside essentiellement dans l’augmentation de la fréquence des processeurs, de sorte qu’il n’a pratiquement jamais essayé de faire quelque chose de vraiment intelligent ou novateur; et il n'en avait pas besoin, car il peut simplement dire aux gens "vous n'avez pas besoin de plus de cœurs, mais j'ai ce nouveau processeur juteux qui tourne 100 MHz plus vite". Dans le même temps, il pourrait vendre des CPU multicœurs sur le marché des serveurs à des prix absurdement élevés (car les serveurs ont toujours eu besoin dedes tonnes de puissance parallèle, au point qu'il y a une tendance actuelle à essayer de réaliser des serveurs qui utilisent ... devinez quoi? Des centaines de processeurs téléphoniques bon marché fonctionnant en parallèle)

Ceci, à son tour, a reflété dans la communauté des développeurs qui n’a jamais compris l’importance de la programmation parallèle, de sorte que beaucoup, sinon la plupart d’entre eux, ne se sont jamais souciés d’utiliser plus d’un thread à la fois - ou pour technique, ayant leur logiciel faire plus d’une tâche à la fois. Ce qui est d'ailleurs logique lorsque 99% de votre clientèle compte au maximum deux cœurs. Malheureusement, cela a conduit à la légende selon laquelle les algorithmes parallèles sont vraiment difficiles à implémenter et ne s'appliquent qu'à un petit sous-ensemble de problèmes.

Enfin, le marché de la téléphonie mobile n’a jamais connu le succès d’Intel; Bien au contraire, comme il arrive la plupart du temps, Intel essaie de faire quelque chose de différent de l’architecture X86 habituelle. Ainsi, faute d'influence et de contrôle du marché, les autres producteurs de processeurs sont allés dans le sens habituel depuis des siècles en dehors du marché des ordinateurs personnels: l'informatique parallèle.

motoDrizzt
la source
12
Êtes-vous sûr de répondre à la bonne question ?
iBug
7
@iBug Cette réponse s'applique mieux à la question acceptée à la question du PO. La réponse acceptée est celle qui ne répond pas à la bonne question.
Aaron
6
"gonfler artificiellement les prix des processeurs" -> Si Intel gonflait artificiellement les prix, pourquoi ses concurrents utilisent-ils un matériel de même prix et pourquoi les ordinateurs fonctionnant avec ARM sont-ils si durs comparés au matériel Intel? Cette haine intellectuelle est ridicule. Faire du CPU est difficile . Ce qui a rendu ARM si populaire sur les appareils mobiles, c’est l’idée big.LITTLE, qu’ils avaient conçue avant Intel.
T. Sar - Réintégrer Monica
6
Intel ne contrôle pas le marché des puces pour PC et ne le contrôle pas depuis de nombreuses années. Et la raison pour laquelle les concepteurs de puces sont passés d’horloges plus rapides à plus de cœurs, c’est que les horloges plus rapides rencontraient des limitations physiques fondamentales. Il était beaucoup plus difficile de résoudre le problème du nombre de cœurs, aussi l’a-t-on reporté au point que c’était le moyen le plus rentable d’accroître les performances.
Kevin Krumwiede
6
Il s’agit plutôt d’une diabolique société Intel, qui n’est pas bien méritée, car ARM visait tout aussi bien les fabricants de puces indépendants que leurs licences.
Dmitry Grigoryev
9

Il y a deux facteurs, l'un très pratique et l'autre historique.

La raison pratique est l'utilisation d'architectures mixtes dans les téléphones. La consommation d'énergie est essentielle pour les téléphones et les téléphones passent beaucoup de temps dans des modes où ils nécessitent très peu de performances. Il est logique de disposer de cœurs optimisés pour une consommation d'énergie minimale lorsque des performances faibles sont nécessaires, tout en les optimisant pour fournir des performances optimales en cas de besoin.

L'autre raison est en grande partie historique. Jusqu'en 2005 environ, les processeurs de bureau étaient tous à un seul cœur. L’amélioration des performances de l’ordinateur de bureau consistait presque exclusivement à créer un noyau capable d’exécuter autant d’instructions par seconde que possible. Même de nos jours, un si grand nombre de logiciels de bureau ne peut pas tirer pleinement parti des multiples cœurs que beaucoup préféreraient un processeur à 4 cœurs à un processeur à 8 cœurs avec des cœurs 20% plus lent.

Tirer le maximum de performances d'un seul cœur nécessite d'énormes quantités de ressources CPU. Ce sont des biens immobiliers qui pourraient autrement être utilisés pour fournir plus de cœurs. C'est la raison pour laquelle les derniers processeurs Kaby Lake d'Intel proposent jusqu'à 4 cœurs et que les gens les achètent, car chaque cœur est plus rapide que les cœurs de leur prédécesseur. Pour beaucoup, ils constituent une mise à niveau, même à partir de processeurs avec un nombre de cœurs plus élevé.

Au fil du temps, attendez-vous à voir davantage de logiciels de bureau entièrement optimisés pour prendre en charge davantage de cœurs. À mesure que cela se produira, les compromis en matière d’ingénierie commenceront à favoriser davantage de cœurs par rapport aux cœurs plus rapides sur les ordinateurs de bureau. Même si les cœurs vont presque certainement toujours aller plus vite, vous allez commencer à voir des gens préférer un processeur à 8 cœurs à un processeur à 4 cœurs même si chaque cœur est 20% plus lent. Les concepteurs de puces suivront le marché.

David Schwartz
la source
5

Il est essentiel pour un téléphone de pouvoir fournir une puissance de calcul rapide (il faut que certaines applications soient rapides), mais aussi d'éviter une surchauffe (la dissipation de chaleur est beaucoup plus difficile pour les téléphones que pour les ordinateurs portables ou les PC). Pour ce faire, les architectes conçoivent les téléphones de manière à utiliser un seul cœur lorsque la charge de travail est légère et fournissent des cœurs supplémentaires pour améliorer les performances lorsque cela est nécessaire. Si les téléphones utilisaient moins de grands noyaux, la surchauffe deviendrait un problème même lorsque la charge de travail est assez légère.

Source: Cours d'architecture informatique de deuxième cycle.

Tara Eicher
la source
À vrai dire, la capacité à fournir une puissance de calcul (si c'est ce que vous entendez par énergie ) en courtes rafales est cruciale pour le poste de travail également. C'est pourquoi ils ont TurboBoost sur les puces Intel.
Dmitry Grigoryev
Oui, la puissance de calcul est ce que je voulais dire. Il est vrai que tous les périphériques pouvant s’attendre à une charge de travail éclatante à un moment donné (y compris les téléphones et les ordinateurs de bureau) doivent pouvoir le gérer. La principale différence est la dissipation de chaleur.
Tara Eicher
Je suis d’accord avec ce que vous avez dit, je voulais juste souligner que la charge de travail excessive n’est pas spécifique aux téléphones.
Dmitry Grigoryev
2

Premièrement, la machine virtuelle Java peut toujours tirer parti des technologies multicœurs plus que les logiciels de bureau classiques. Même si vous écrivez une application mono-thread en Java, elle s'exécutera plus rapidement sur un multicœur car la plupart du code du récupérateur de place s'exécutera parallèlement à votre application.

Deuxièmement, beaucoup de choses se passent en arrière-plan sur votre téléphone: mises à jour automatiques, téléchargements d'annonces, logiciel antivirus, gestion du module GSM, etc. Sur un ordinateur portable, toutes ces tâches occuperaient à peine un cœur, mais les cœurs ARM sont beaucoup moins puissant, il est donc préférable d’avoir au moins deux de ceux-ci dédiés aux tâches d’arrière-plan si vous voulez un système réactif.

Enfin, il y a le marketing. Peu d'utilisateurs sont capables d'évaluer s'ils bénéficieraient de 8 cœurs, mais un smartphone à 8 cœurs sonne certainement plus cher que celui à 2 ou 4 cœurs.

Dmitry Grigoryev
la source
2
Je continue à voir des déclarations le long de la ligne "Les cœurs ARM sont beaucoup moins puissants" - qu'est-ce que cela signifie exactement? Ils ont moins de vitesse d'horloge?
Abdul
2
@ Abdul moins d'opérations par seconde. Les puces x86 peuvent exécuter plusieurs opérations à la fois, ce qui leur permet de surperformer ARM même à la même vitesse d'horloge. Vérifiez cette comparaison : la première puce ARM (GT-I9100) est environ 10 fois plus lente que la première puce x86 (i7-2920XM).
Dmitry Grigoryev
Est-ce que "opérations par seconde" est synonyme de FLOPS?
Abdul
@ Abdul Pas nécessairement. En fait, mis à part les jeux et les simulations physiques, la virgule flottante n’est pas utilisée beaucoup. En outre, de nombreuses puces ARM réalisent des FLOPS décents en réduisant la précision, de sorte que ce n'est pas non plus la seule mesure vraie.
Dmitry Grigoryev
Les applications Android ne s'exécutent pas sur une machine virtuelle Java. Ils fonctionnent sur Dalvik VM
phuclv
1

Les réponses fournies à ce jour expliquent certaines des facettes du problème qui a conduit à cette majorité écrasante de cœurs de processeur sur les téléphones Android. Lisez cela à nouveau. Téléphones Android. L'iPhone a réussi à rester collé à quelques noyaux depuis des lustres et fonctionne toujours beaucoup plus doucement que tout autre produit phare Android.

Les concepteurs d’Android ont fait le pari de choisir la programmation Java et, par conséquent, la JVM comme moteur d’application. En raison de ses principes de conception, Java résout le problème de la nécessité de compiler et de générer du code pour chaque architecture de CPU avant de pouvoir l'exécuter en sacrifiant les performances. Java introduit une machine virtuelle lourde et volumineuse, généralement appelée machine virtuelle Java. La JVM émule en réalité un processeur au niveau logiciel afin d’éviter de compiler le code séparément pour chaque périphérique. Considérez la machine virtuelle Java comme un processeur virtuel possédant les mêmes propriétés, quel que soit le périphérique qui l'exécute. Le code n'a donc besoin d'être compilé qu'une seule fois pour la machine virtuelle Java et peut ensuite être exécuté sur chaque périphérique. Cela permet aux fabricants d’utiliser le matériel de leur choix avant de s’inquiéter de la compatibilité des applications.

La JVM elle-même n’est qu’une spécification et les utilisateurs sont libres de développer leur propre JVM tant qu’elle adhère à cette spécification. La machine virtuelle Java d'origine s'appelait Dalvik. De nos jours, Google a remplacé cela par ART.

Maintenant, quel est le problème avec JVM? C'est un logiciel lourd qui consomme énormément de ressources informatiques. Ajoutez à cela d'autres propriétés du langage Java telles que Garbage Collection et la consommation de ressources de la JVM devient tout simplement trop importante pour un périphérique disposant d'une puissance matérielle modeste. Chaque application et service système ouvert sur votre appareil est lui-même une instance de la machine virtuelle ART et vous pouvez maintenant en conclure que leur gestion nécessite toutes un matériel réellement performant. La situation va encore empirer lorsqu'il faudra dessiner des interfaces utilisateur.

Chaque application s'exécute sur un certain nombre de threads. Chaque cœur de processeur ne peut exécuter qu'un seul thread à la fois. Chaque application a un fil principal sur lequel sont effectuées les tâches liées à l'interface utilisateur. Il pourrait y avoir beaucoup plus de threads par application pour l'accès aux fichiers, le réseau, etc. Il y a généralement plus d'applications ouvertes (et de services système) ouvertes que de cœurs de processeur et, par conséquent, il y a généralement beaucoup plus de threads que de cœurs de processeur. Chaque noyau doit donc alterner entre le traitement de différents threads, en faisant un peu de chacun et en passant au suivant. Cette commutation prend beaucoup de temps pour la CPU et dans le cas où les applications sont essentiellement des machines virtuelles, cette tâche devient encore plus exhaustive.

Sur la base de cette explication, on pourrait en déduire que l’androïde a besoin de matériel puissant pour fonctionner correctement. Les premières générations d'appareils Android étaient célèbres pour leurs retards, leurs crashs et bien d'autres choses malheureuses. Mais au fil des ans, ces problèmes ont été résolus en utilisant un matériel puissant.

D'autre part, les applications iOS sont compilées en code machine natif et n'ont donc pas besoin de virtualisation. Le langage utilisé et le système d’exploitation sont également plus efficaces et permettent donc à ces dispositifs de rester en douceur sans avoir recours à un jeu de puces excessif.

DarthPaghius
la source
C'est une bonne explication pour laquelle les téléphones mobiles sont beaucoup plus puissants que les ordinateurs de bureau. Ou n'est-ce pas?
Maaartinus
«Cela permet aux fabricants de lancer tout le matériel qu’ils veulent avant de s’inquiéter de la compatibilité des applications.» Un bon point, mais je ne suis pas sûr qu’il s’agisse de l’intention d’un système destiné (à l’origine) aux caméras.
v6ak
«Il pourrait y avoir beaucoup plus de threads par application pour l'accès aux fichiers, le réseau, etc. Parfois, les E / S sont gérées par un seul thread, car le processeur est beaucoup plus rapide que les périphériques d'E / S.
v6ak
«Les premières générations d'appareils Android étaient réputées pour leurs retards, leurs crashs et bien d'autres choses malheureuses» - je me souviens d'avoir utilisé Marshmallow sur un tel téléphone (Xperia Mini Pro), et je pense qu'il existe de nombreuses autres raisons d'être aussi lent que le processeur. Ils utilisaient peu de mémoire flash, comme MTD (beaucoup plus lentement que les cartes microSD pour certaines opérations), alors qu’ils utilisaient peu de mémoire vive, les plus anciens Androids avaient une «JVM» moins efficace (qui n’est pas techniquement une JVM). Bien sûr, un meilleur processeur aide également, mais je serais loin d'une telle conclusion.
v6ak
En outre, un style de programmation tel que l'exécution d'E / S (ou d'autres opérations longues) dans un thread d'interface utilisateur peut entraîner un décalage des applications, quelles que soient les performances du processeur. Autant que je sache, ce style est assez courant dans les premières applications Android. De telles applications peuvent être lentes même avec les téléphones modernes. Ils seront probablement moins longs, mais cela tient davantage aux mémoires flash plus rapides qu’aux processeurs plus rapides ou à plus de cœurs.
v6ak
0

En reprenant tout cela, je peux dire que les cas d’utilisation du PC et du téléphone sont très différents. La plupart des ordinateurs sont utilisés dans une ou plusieurs applications (bien sûr, les navigateurs dotés de plusieurs onglets nécessitent de nombreux cœurs de processeur, peuvent être à la traîne, même sur le haut des i-3), des téléphones utilisés en multitâche. Au moins une connexion réseau, une interface utilisateur, des déclencheurs système, des notifications. Si vous ouvrez le gestionnaire de tâches sur PC, de nombreux processus sont également utilisés, mais ils utilisent moins de quelques% de la puissance du processeur, même sur les anciens Core 2 duo. 4 cœurs n’est pas cher (MTK 65x2 coûtait 1 $ au début pour les équipementiers). C’est aussi RISQUE que le CISC lors du dernier manque de performances par cœurs. Efficacité énergétique! = Puissant, comme on peut le voir ici . Le multi-cœur est parfait pour les téléphones mobiles, car il n’ya pas de charge unique et lourde, ni d’expérience multi-tâches (mais nous pouvons voir que les iPhones nécessitent moins de cœurs et de RAM en raison du bon logicielcomme dans cette vidéo ou d'autres )

Flippy
la source
Une grande partie de cela est souvent effectuée sur un ordinateur portable. Et le multitâche ne doit pas nécessairement nécessiter beaucoup de ressources processeur. La différence des coûts de fabrication peut être à l'origine de certaines différences et peut expliquer le nombre réduit de cœurs pour les processeurs les plus bas, mais je doute que les coûts de fabrication soient la seule raison pour laquelle tous les i7 ne disposent pas d'au moins quatre cœurs. Je crois que les coûts de fabrication ne représentent qu'une infime fraction du prix de ces processeurs.
v6ak
@ v6ak, le problème est que les cœurs x86 sont plus gros et plus compliqués, les processeurs intell (ou amd) ne sont tout simplement pas assez bons pour être au top modèle. En fait, la plupart d’entre elles sont bloquées et deviennent junior i7 ou Pentium. Les noyaux ARM ont l'air moins délicats, donc peu de modèles arrivent chaque année. Toujours vrai octa core était Samsung Exynos Octa 7xxx , MTK Helio X10 , le plus récent (X30) propose même peu (4) .Middle (4) .BIG (2), on peut lui annoncer qu'il s'agit d'un processeur 10 core, marketing pas cher fait-il chose
Flippy
-1

Je pense que l'un des principaux facteurs déterminants au-delà des 4 ou 8 (pour les grandes: petites configurations) est juste le marketing pour le moment.

L’énorme problème du nombre élevé de noyaux réside dans la taille de la mémoire. Normalement, dans les applications de bureau, lorsque vous souhaitez améliorer l'utilisation de plusieurs cœurs, vous devez dupliquer des structures et utiliser beaucoup plus de mémoire que dans une seule application threadée.

Cela ne se produit pas car la RAM coûte très cher (surtout dans la situation de crise de RAM 2017/2018). Le marketing veut des chiffres élevés mais le contrôle veut réduire les prix des composants. Si vous constatez un solde inférieur à 1 gigaoctet de RAM par cœur, la compromission a échoué.

Lothar
la source