Jump to content

Explication - Définition d'un gouverneur CPU dans le monde d'Android


onorer

Recommended Posts

Salut à tous !

 

Dans des applications comme SetCPU, on tombe souvent sur un paramètre qu'on ne maîtrise pas forcément: le choix du gouverneur CPU. Vous en saurez plus sur les gouverneurs grâce à ce post

 

 

Alors qu'est-ce qu'un gouverneur CPU ?

 

Un gouverneur (“governor” ou “scaling governor” en Anglais) est un module du kernel qui a pour rôle de gérer la fréquence du processeur en fonction de la demande en ressources du système et des applications. Par exemple, au lancement d’un jeu, le gouverneur va faire grimper la fréquence du processeur, puis la faire diminuer lors d’une mise en veille.

 

Il existe différents gouverneurs qui réagissent différemment aux sollicitations, économisant la batterie pour certains, ou au contraire augmentant les performances de l'appareil pour d’autres. L'un des principaux intérêts des kernels customs est la grande variété de gouverneurs CPU qu'ils intègrent.

Avec un mobile rooté et en utilisant des applications telles que SetCPU, No-Frills CPU Control, CPU Tuner ou encore AnTuTu CPU Master, il est possible de définir un gouverneur par défaut.

 

 

Quels sont les différents gouverneurs ?

 

Voici les gouverneurs les plus couramment rencontrés:

 

  • Performance : Le but de ce gouverneur est de tirer un maximum de puissance du téléphone. Il pousse la fréquence du processeur au maximum en permanence. C’est donc un gouvernor puissant mais qui s’avère très gourmand en énergie, en découle donc une autonomie amoindrie et une chauffe de l’appareil. Après une période d’utilisation allongée et une fréquence maximale trop élevée, il peut causer des dommages matériels au processeur.
    911219Blank9.png&key=1986c83f9f899cd1d462dd6784a6ce89d8d13b737eb4119e4d4e11382771cf11
     
  • Powersave : Comme son nom l’indique, le powersave permet de considérablement augmenter l’autonomie de votre smartphone. Il consiste à faire constamment tourner le CPU à la fréquence minimale définie. Le téléphone aura tendance à être particulièrement lent en mode powersave.
    911219Blank9.png&key=1986c83f9f899cd1d462dd6784a6ce89d8d13b737eb4119e4d4e11382771cf11
     
  • Userspace : Ce gouverneur est un peu spécial dans la mesure où il ne réagit pas aux demandes système. C’est l’utilisateur qui défini la fréquence qu’il souhaite pour faire des tests. Il est considéré comme obsolète car les applications telles que SetCPU permettent de faire ces réglages sans avoir besoin d’utiliser ce gouverneur.
    911219Blank9.png&key=1986c83f9f899cd1d462dd6784a6ce89d8d13b737eb4119e4d4e11382771cf11
     
  • OnDemand : L’Ondemand est le gouverneur le plus populaire, et en général celui qui est défini par défaut sur les terminaux android. Sa particularité par rapport aux autres gouverneurs est que lorsque la demande en ressources des applications dépasse un certain seuil, il définit automatiquement la fréquence à son maximum. Puis, au fur et à mesure, il baisse la fréquence par paliers en fonction de la diminution de la charge, et place de nouveau la fréquence au maximum si la demande remonte. Il constitue en général un bon compromis entre autonomie et puissance, mais a tendance à trop augmenter la consommation du CPU (sur les courtes et moyennes sollicitations), et donc affecter l’autonomie plus que d’autres gouverneurs dans ce genre de cas.
    911219Blank9.png&key=1986c83f9f899cd1d462dd6784a6ce89d8d13b737eb4119e4d4e11382771cf11
     
  • Conservative : Le nom de ce gouverneur en révèle le but, être plus économe en énergie que OnDemand. Conservative monte lentement à la fréquence maximale lors d’une sollicitation puis redescend rapidement à la fin de celle-ci. Économe mais pénalisant sur les pics de charge sur le processeur. Si vous lancez un jeux gourmand, il risque fort d’y avoir des ralentissement lors de sont lancement. C’est l’inverse de l'Interactive.
    911219Blank9.png&key=1986c83f9f899cd1d462dd6784a6ce89d8d13b737eb4119e4d4e11382771cf11
     
  • Interactive : A l’inverse du conservative, l’interactive fait rapidement monter la fréquence à son maximum lorsque la charge du système augmente, puis la fait diminuer doucement quand la demande baisse. Sa particularité est que contrairement à la plupart des autres gouverneurs, il ne fait diminuer la fréquence qu’après un certain temps écoulé depuis la baisse de la demande. L’avantage de l’interactive est donc la réactivité qu’il offre au système. Comparé à l’ondemand sur lequel il est basé, il offre un meilleur rapport autonomie/puissance lors des utilisations moyennes. Mais à l’instar de ce dernier, il engendrera une consommation particulière de la batterie ainsi qu’une chauffe de l’appareil lors des pics de fréquences, étant donné la durée de ces pics.
    911219Blank9.png&key=1986c83f9f899cd1d462dd6784a6ce89d8d13b737eb4119e4d4e11382771cf11
     
  • Smartass : Provenant d’un terme anglais que je ne traduirai pas (il y a peut-être des enfants dans la salle icon_e_confused.gif&key=2fe487694c5a4ba079257ed9ad61e44ac4e55ef71cea865babb5945ea62116b2 ), le smartass est à mi-chemin entre l’ondemand et l’interactive. Il offre en théorie le meilleur de ces gouverneurs pour une consommation plus faible. La fréquence monte vite, comme pour l'ondemand, à une fréquence idéale pour la sollicitation en cours. En fin de sollicitation, comme interactive, il redescend progressivement à la fréquence minimale. L'inconvénient, comme pour l'interactive est qu’il met un certain temps avant de redescendre à la fréquence minimale.
    911219Blank9.png&key=1986c83f9f899cd1d462dd6784a6ce89d8d13b737eb4119e4d4e11382771cf11
     
  • Smoothass : Le smoothass est une version plus “agressive” du smartass car il fait monter et descendre beaucoup plus vite les fréquences. De plus, en veille ou “au repos” (utilisation faible), la fréquence maximale est moins élevée que celle du smartass dans ce genre de situation. Par conséquent, le Smoothass offre théoriquement une meilleure autonomie que ce dernier, tout en reprenant ses avantages.
    911219Blank9.png&key=1986c83f9f899cd1d462dd6784a6ce89d8d13b737eb4119e4d4e11382771cf11
     
  • SmartassV2 : Le smartass V2 est une version réécrite du smartass. Il détermine une fréquence idéale en fonction de la demande, puis fait monter très rapidement le CPU à cette fréquence. Après une baisse de sollicitation, il fait descendre la fréquence plus lentement à l’instar du smartass.
    A l’inverse, lorsque l’appareil est en veille, il fait diminuer très vite la fréquence pour optimiser l’autonomie.
    911219Blank9.png&key=1986c83f9f899cd1d462dd6784a6ce89d8d13b737eb4119e4d4e11382771cf11
     
  • SmartassH3 : Basé sur le smartass V2, le smartassH3 est un gouverneur moins économe en ressources que ce dernier. En effet il va éviter au maximum de pousser le processeur à sa fréquence maximale, par conséquent il est suffisant pour des utilisations basiques de l'appareil mais n'est pas adapté aux jeux et autres utilisations poussées.
    911219Blank9.png&key=1986c83f9f899cd1d462dd6784a6ce89d8d13b737eb4119e4d4e11382771cf11
     
  • Lagfree : Très proche et plus économe que l’ondemand, le Lagfree a pour principale différence avec ce dernier qu’il monte ou diminue toujours les fréquences en respectant chaque palier. De plus, lors d’une sortie de veille, il définit une certaine fréquence assurant une fluidité optimale. Le Lagfree ne porte pas toujours si bien son nom, car étant donné l’augmentation des fréquences par pallier, il ne peut pas répondre rapidement à une sollicitation forte et soudaine.
    911219Blank9.png&key=1986c83f9f899cd1d462dd6784a6ce89d8d13b737eb4119e4d4e11382771cf11
     
  • Lionheart : Le lionheart est basé sur le gouverneur conservative, mais se comporte comme le performance lorsque la demande augmente.
    377871Blank4.png&key=a414c0d8f39ca8a6a74045b535ae57db4216c6763d43a6cb384e4479c9637b18
     
  • La Série X : Les X series (OndemandX, InteractiveX, LionHeartX ou encore ConservativeX) sont des versions améliorées des gouverneurs correspondants. Généralement ces améliorations consistent en un profil de veille qui descend la fréquence maximale du processeur lors d’une veille ou d’une absence de sollicitation. De plus, dans le cas de téléphones à CPU multi-coeurs, les gouverneurs des X Series désactivent les coeurs inactifs en veille. Les “X Series” offrent donc théoriquement une meilleure autonomie que leurs correspondants originaux.
    911219Blank9.png&key=1986c83f9f899cd1d462dd6784a6ce89d8d13b737eb4119e4d4e11382771cf11
     
  • Min Max (ou minmax) : Un gouverneur pas bien compliqué à comprendre. Il fait passer le processeur de sa fréquence minimale à maximal sans passer par aucune fréquence intermédiaire en cas de sollicitation. Il redescend aussi brutalement en fréquence minimale en fin de sollicitation.
    911219Blank9.png&key=1986c83f9f899cd1d462dd6784a6ce89d8d13b737eb4119e4d4e11382771cf11
     
  • Brazilianwax : Similaire au SmarthassV2 mais en plus agressif. Les montées de fréquences se font plus rapidement. Donc meilleures performances mais moins bonne autonomie.
    377871Blank4.png&key=a414c0d8f39ca8a6a74045b535ae57db4216c6763d43a6cb384e4479c9637b18
     
  • SavagedZen : Aussi basé sur le smartassV2. Il a pour but de se rapprocher des performances de brazilianwax mais en étant plus économe. Il constitue de ce fait un gouverneur très polyvalent.
    377871Blank4.png&key=a414c0d8f39ca8a6a74045b535ae57db4216c6763d43a6cb384e4479c9637b18
     
  • Scary : Basé sur le conservative, ce gouverneur monte doucement en fréquence comme le conservative et abaisse lentement la fréquence comme le smartass. De plus, il définit automatiquement la fréquence à 245 Mhz lorsque le téléphone est en veille, ou la baisse à 122Mhz (toujours en veille) si la fréquence minimale que vous avez définie est supérieure à 245Mhz.
    377871Blank4.png&key=a414c0d8f39ca8a6a74045b535ae57db4216c6763d43a6cb384e4479c9637b18
     
  • Lazy : Ce gouverneur tient bien son nom de “paresseux”: il est basé sur l’ondemand, et a pour différence avec ce dernier de ne passer d’une fréquence à l’autre qu’un certain temps après la hausse ou la baisse de la demande, dont il détermine plus rapidement l’intensité que l’ondemand. L’avantage de ce gouverneur est d’avoir un bon rapport entre autonomie et fluidité lors d’une utilisation d’intensité légèrement variable (navigation web notamment). Mais il reprend un inconvénient du lagfree: lors d’une hausse soudaine de la demande, il ne peut pas réagir efficacement.
    377871Blank4.png&key=a414c0d8f39ca8a6a74045b535ae57db4216c6763d43a6cb384e4479c9637b18
     
  • Intellidemand : Intellidemand, pour “intelligent ondemand”, est une version modifiée de l’ondemand qui modifie la fréquence du processeur en fonction de l’activité de... la puce graphique ! Il se comporte en effet comme l’ondemand lorsque le GPU est fortement nécessité (jeux, animations etc.). Et lorsque le GPU n’est pas ou est peu sollicité, l’intellidemand limite la fréquence maximale à une valeur moyennement élevée de sorte à économiser la batterie. Il constitue donc une bonne alternative à l'ondemand.
    377871Blank4.png&key=a414c0d8f39ca8a6a74045b535ae57db4216c6763d43a6cb384e4479c9637b18
     
  • Intelliactive : Un gouverneur basé sur l'Interactive, dont le fonctionnement consiste à pousser moins vite la fréquence lors d'une demande en ressources: il évite donc un passage brutal à la fréquence maximal contrairement à l'Interactive. En outre il détecte les coeurs inactifs du processeur et annule certaines vérifications inutiles.
    377871Blank4.png&key=a414c0d8f39ca8a6a74045b535ae57db4216c6763d43a6cb384e4479c9637b18
     
  • Hotplug : Gouverneur principalement intégré au kernel des téléphones à CPU multi-coeurs, le HotPlug est une version légèrement améliorée de l’ondemand quand à la diminution de la fréquence lors d’une baisse de la demande. De plus, il a pour particularité de désactiver les coeurs inactifs du processeur lors d’une utilisation peu intense.
    377871Blank4.png&key=a414c0d8f39ca8a6a74045b535ae57db4216c6763d43a6cb384e4479c9637b18
     
  • Lulzactive : Le lulzactive développé par l’équipe de Tegrak est à mi-chemin entre l’interactive et le smartass. Il ne fait grimper la fréquence que lorsque c’est nécessaire, et a pour avantage d’être particulièrement configurable. Voir la page officielle pour plus d’infos.
    377871Blank4.png&key=a414c0d8f39ca8a6a74045b535ae57db4216c6763d43a6cb384e4479c9637b18
     
  • PegasusQ : PegasusQ est un gouverneur basé sur l'Ondemand et le Hotplug et optimisé pour les mobiles multicoeurs. Il utilise un système de "file d'attente" élaboré qui répartit de manière juste les ressources aux processus. En effet chaque processus, avant que le système ne lui alloue les ressources nécessaires à son lancement, est placé dans une file d'attente en fonction de sa priorité. Pour assurer une répartition juste des ressources chaque processus est lancé pour un certain laps de temps (n'oublions pas que tout se fait en quelques millisecondes) puis, lorsque sa priorité n'est plus la plus élevée, le processus est placé plus bas dans la file d'attente pour permettre à un autre processus prioritaire de se lancer. Il en résulte une meilleure répartition des ressources car les processus les plus énergivores n'empiettent pas sur les autres, tout en étant exécutés de manière efficace !

Link to comment
Share on other sites

×
×
  • Create New...