36 votes

Les applications à fil unique utilisent-elles le multi-cœur dans Android ?

Est-ce qu'une application à fil unique utilise les 4 cœurs d'un téléphone à quatre cœurs ? J'ai beaucoup cherché et j'ai trouvé des articles qui disent oui et d'autres qui disent non. Certains articles disent même que le système d'exploitation Android n'utilise pas les 4 cœurs.

Android est-il capable d'utiliser les 4 cœurs d'un processeur quadri-cœur ?

L'application à un seul fil utilise-t-elle le multi-cœur ?

24 votes

Bill gates a posé une question et steve jobs a édité ceci :) Sir Dennis Ritchie va répondre à cette question :)

0 votes

Je ne voudrais pas répéter la réponse de quelqu'un d'autre, mais je suis d'accord avec les réponses et la discussion sur ce fil. Question similaire Il n'y a aucune raison valable pour que le système d'exploitation n'utilise pas tous les cœurs. J'espère que cela vous aidera et bon travail.

1 votes

Je ne vois pas Linus Torvald dans les parages.

22voto

Gagan Points 823

La réponse est OUI .

Android est fondamentalement construit sur le noyau Linux qui fait utiliser le mulit-core. En ce qui concerne les applications à un seul fil, rappelez-vous qu'un fil ne peut pas être exécuté en partie sur différents cœurs simultanément. Ainsi, bien que votre single-thread puisse être exécuté par différents cœurs à différents moments, il ne peut pas être subdivisé et exécuté par différents cœurs en même temps.

Cela dit, sachez que les fabricants de chipsets comme Qualcomm développent des processeurs intelligents capables de subdiviser le code de votre application à un seul thread (si et seulement si les parties s'excluent mutuellement) en plusieurs threads et de le faire fonctionner sur différents cœurs. Là encore, le principe de base reste le même : pour utiliser le multi-cœur, le thread unique a été subdivisé en plusieurs threads.

Pour tirer le meilleur parti de votre puce multicœur, il est préférable de créer une application multithread, avec le maximum de threads asynchrones possibles, afin d'utiliser de manière optimale le nombre maximal de cœurs. J'espère que tout ceci est clair.

EDIT :

Cela se traduit également par le fait qu'une application qui n'utilise pas plusieurs threads asynchrones (ou toute autre construction de parallélisme) n'utilisera PAS plus d'un cœur.

1 votes

Vous n'avez pas répondu à la question. Une application qui n'utilise pas de threads multiples (ou toute autre construction permettant le parallélisme) n'utilisera PAS plus d'un cœur.

0 votes

Bonjour Wes, je crois que j'ai soulevé ce point dans le dernier paragraphe de ma réponse. Si seulement il fallait le reformuler, je l'ai fait maintenant. Je l'ai fait. Merci !

0 votes

-1. Vous avez tort. Les charges de travail à un seul fil n'utilisent pas plus d'un cœur. Les navigateurs web sont dans cette catégorie, ce qui signifie un cœur par onglet, au maximum. La réponse est NON.

10voto

Manish Points 3614

Sur un appareil mobile équipé d'un processeur à quatre cœurs, le système d'exploitation peut allouer dynamiquement des les charges de travail au cœur du processeur approprié en fonction des charges actuelles du processeur et de la priorité des tâches/activités. Par exemple, si deux cœurs de processeur sont occupés à traiter des tâches longues telles que les mises à jour d'applications Android, la compression de fichiers et le traitement des médias, le système d'exploitation peut immédiatement allouer une charge de travail à un cœur de processeur approprié. d'applications Android, la compression de fichiers et le traitement des médias, le système d'exploitation peut tâches sensibles à la latence, telles que les entrées tactiles, au troisième ou quatrième cœur disponible afin d'assurer une réactivité. Lorsque plusieurs tâches sont exécutées en même temps, les requêtes en attente de ces tâches peuvent être traitées plus rapidement. de ces tâches peuvent être traitées plus rapidement si plusieurs cœurs sont disponibles pour répondre à ces demandes.

Le système d'exploitation Android a évolué à partir de Linux, et dispose donc d'une prise en charge native du multitâche et multithreading. Les versions récentes d'Android 2.3 et Android 3.0/3.1/3.2 ont ajouté plusieurs fonctionnalités qui améliorent la capacité du système d'exploitation à tirer parti de la puissance de traitement des processeurs multicœurs. Les navigateurs mobiles tels que Firefox et Webkit sont basés sur leurs homologues de bureau et incluent donc nativement le support du multithreading. Le nouveau navigateur inclus dans Android 3.0 prend en charge non seulement le multithreading, mais aussi la navigation par onglets. Ces navigateurs sont capables d'utiliser la puissance de traitement accrue offerte par les processeurs multi-cœurs pour offrir une expérience de navigation Web plus rapide et de meilleure qualité.

Les images suivantes en décrivent davantage :

Cette figure montre l'utilisation de chaque cœur d'un système de CPU quadruple pendant la navigation sur le site Web populaire du New York Times. Cette figure montre que le navigateur utilise les quatre cœurs de l'unité centrale quadruple, et ce traitement parallèle permet une navigation Web beaucoup plus rapide que sur un appareil mobile équipé d'une unité centrale double. Les CPU quadri-cœurs offrent également des performances supérieures pour les navigateurs qui prennent en charge la navigation par onglets.

CPU Utilization

La figure ci-dessous montre l'utilisation du CPU sur les quatre cœurs du CPU lorsque plusieurs onglets sont ouverts dans un navigateur Web. En fait, la navigation par onglets utilise un traitement important du CPU et, comme le montre la figure, peut même saturer les quatre cœurs d'un CPU quadri-cœur.

Tabbed Browsing

Raison pour laquelle le système d'exploitation Android devrait utiliser tous les cœurs : (Comme je suis un développeur Android, la raison est liée au point de vue des développeurs Android).

En raison de la croissance rapide des jeux mobiles, les développeurs transfèrent les moteurs de jeux populaires des PC et des consoles vers l'environnement mobile. à l'environnement mobile. Ces moteurs de jeu ont été développés à l'origine pour des plates-formes PC de bureau multicœurs et tireront donc parti des processeurs multicœurs des processeurs mobiles pour offrir des avantages immédiats aux joueurs mobiles. pour offrir des avantages immédiats aux joueurs mobiles. Les CPU quadri-cœurs fournissent une puissance de traitement considérable pour les développeurs de jeux et leur permettront d'inclure des effets physiques avancés, de l'intelligence artificielle, la détection/évitement des collisions, des textures virtuelles, une meilleure jouabilité en réseau, etc. Les CPU quadri-cœurs et la technologie SMP variable permettront aux appareils mobiles de repousser les limites de la performance et aux développeurs d'applications et de jeux de proposer de nouvelles expériences mobiles, tout en prolongeant l'autonomie de la batterie pour les cas d'utilisation les plus populaires.

À mesure que les jeux mobiles gagnent en complexité et en richesse visuelle, la taille des fichiers correspondants au contenu des jeux téléchargeables a également augmenté de façon considérable. Souvent, la taille du fichier du jeu est si importante que le temps nécessaire pour le télécharger dépasse le délai de remboursement de quinze minutes prévu après l'achat pour que les utilisateurs puissent demander un remboursement s'ils n'aiment pas le jeu. Cette situation est non seulement source de frustration pour les acheteurs, mais elle les dissuade également d'acheter des jeux avancés qui nécessitent le téléchargement de gros fichiers.

Les techniques de génération de textures dynamiques en temps réel permettent aux développeurs de jeux de coder des jeux de telle sorte que les textures requises dans le jeu soient créées en temps réel en fonction de la narration et de l'état du jeu. Comme les textures sont générées à la volée, il n'est pas nécessaire de les fournir au moment de l'achat. Grâce à cette technique, les développeurs de jeux peuvent réduire la taille des fichiers de jeu de plusieurs ordres de grandeur. Jetez un coup d'œil à la variation de la scène suivante dans les jeux avec un processeur à 4 cœurs.

Game Scene Variation

7voto

Raghunandan Points 63969

Oui. Android 3.0 est la première version de la plate-forme conçue pour fonctionner sur des architectures de processeurs mono ou multicœurs.

Même une application monofilière peut bénéficier d'un traitement parallèle sur différents cœurs. .

Par exemple, si votre application utilise un serveur de médias, le traitement des médias et la logique de l'application de rendu de l'interface utilisateur peuvent s'exécuter sur différents cœurs en même temps. De même, le ramasseur de déchets peut s'exécuter sur un cœur différent. .

Dites que vous utilisez des graphiques. Pour les rendre, votre application peut utiliser plusieurs cœurs. Vous pouvez vérifier la même chose au lien ci-dessous.

https://youtu.be/vQZFaec9NpA?t=459 (Graphisme et performances)

http://Android-developers.blogspot.in/2010/07/multithreading-for-performance.html

Consultez ce pdf. Faites défiler jusqu'à la diapositive 22. Peut être utile

http://elinux.org/images/1/11/Application-Parallelization-Android-KlaasVanGend.pdf

Prograide.com

Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.

Powered by:

X