Optimisation de l'efficacité énergétique des applications

Conception de Windows 8

Vision en coulisses de l'équipe d'ingénierie Windows

Optimisation de l'efficacité énergétique des applications

  • Comments 1

Réussir à réduire la consommation électrique des PC tout en améliorant leur réactivité et leur confort d'utilisation (en d'autres termes, les rendre plus rapides et plus fluides) est l'un des principaux défis auxquels les ingénieurs informatiques sont confrontés. Pour relever ce défi, nous devons faire en sorte que Windows consomme la quantité adéquate de ressources. De leur côté, les développeurs doivent prendre en compte la consommation des ressources lorsqu'ils développent leurs applications. La question de l'efficacité énergétique concerne tous les formats d'appareils et tous les scénarios d'utilisation : la réduction de la consommation électrique est au cœur des préoccupations de tous les acteurs de l'industrie. Dans ce domaine, les PC Windows 8 innovent. Pour ce faire, ils s'appuient sur le nouveau modèle d'exécution de WinRT : il serait en effet impensable d'appliquer ce principe d'efficacité énergétique aux applications de bureau existantes sans faire de compromis en termes de fonctionnalités et de compatibilité. À l'instar des migrations d'état et du processus d'installation dont nous avons déjà parlé, la consommation électrique fait partie des domaines de Windows qui ont été réimaginés pour s'adapter à de nouveaux scénarios. Sur votre PC x86 existant, toutes les applications actuelles restent prises en charge et toutes les opérations que vous effectuez sur votre ordinateur de bureau fonctionnent exactement de la même manière (elles ont même été optimisées, comme nous l'avons déjà évoqué). À mesure qu'apparaîtront de nouveaux équipements sur l'ensemble des plateformes SoC (dont celle d'Intel), cette efficacité énergétique deviendra plus accessible. Nous allons bien évidemment évoquer le travail réalisé pour optimiser la consommation électrique des applications de bureau. Néanmoins, il va de soi qu'avec l'émergence des scénarios d'utilisation en mode connecté 24 heures sur 24, de nouvelles applications écrites pour WinRT feront leur apparition. Elles s'appuieront sur une nouvelle génération de matériel, prenant en charge de nouvelles fonctionnalités de gestion de l'alimentation.

Sharif Farag et Ben Srour, directeurs de projet au sein des équipes Fondamentaux et Expérience utilisateur, ont rédigé ce billet.

--Steven


Nous avons déjà publié plusieurs billets expliquant notre travail visant à optimiser l'autonomie des PC sous Windows 8. Dans le billet de Pat Stemen Mise au point d'un système Windows polyvalent et plus économe en énergie, nous avons évoqué nos efforts consacrés à la mise en place dans Windows 8 d'un mode d'alimentation similaire à ceux des smartphones, sur un équipement de type SoC (system-on-a-chip). Nous appelons ce mode « veille connectée ». Dans le billet intitulé Mise à jour des mosaïques dynamiques sans baisse de l'autonomie, nous avons expliqué comment nous permettons aux vignettes dynamiques d'afficher des informations récentes et actualisées, sans générer trop d'activité d'arrière-plan, qui risquerait de mettre à mal l'autonomie de la batterie. Dans ce billet, nous nous étendons plus largement sur quelques-unes des innovations dont nous n'avons pas parlé jusqu'à présent. Nous expliquons notamment comment nous avons réduit la consommation électrique des applications en cours d'exécution sur les PC Windows 8, sans compromis en termes de performances.

Comme Pat Stemen l'a évoqué dans son billet, les applications influent sur la consommation électrique, car elles consomment des ressources (processeur, disque, mémoire, etc.). À chaque ressource correspond un coût en termes de consommation électrique. Toute la difficulté consiste à laisser les applications utiliser les ressources dont elles ont besoin lorsque vous les utilisez de façon active, mais à réduire l'utilisation des ressources au strict minimum lorsque vous réalisez d'autres tâches. Bien évidemment, ce principe s'applique aussi au système d'exploitation. Pat Stemen a présenté une partie de notre travail en ce sens, mais en pratique, nous avons apporté des centaines de petites améliorations visant à optimiser ce que nous appelons « l'hygiène de consommation » et à limiter l'utilisation des ressources par le système d'exploitation et les activités. Nous avons cependant veillé à ne pas aller trop loin en bridant certaines fonctionnalités souhaitées par les clients, qui veulent par exemple que les opérations démarrées puissent se terminer en arrière-plan.

Suite au billet consacré aux vignettes dynamiques, @ItsMe nous a posé la question suivante :

« Qu'en est-il des tâches de copie en arrière-plan ? Si je place l'application de l'Explorateur de fichiers en arrière-plan pour afficher ou modifier un document Word, la tâche de copie sera-t-elle interrompue jusqu'à ce que l'Explorateur de fichiers repasse en plein écran ? Cela me semble incompréhensible ! »

La réponse à cette question est non : l'opération de copie des fichiers se poursuit exactement de la même manière qu'aujourd'hui et n'est en aucun cas suspendue si vous lancez une tâche de copie, puis que vous passez à autre chose pendant qu'elle se termine en arrière-plan. Ce principe s'applique dans tous les cas, aussi bien quand vous continuez à utiliser votre PC qu'après le déclenchement de l'écran de veille ou de verrouillage, une fois le délai d'inactivité atteint. La suspension des applications inactives s'applique uniquement aux applications de style Metro et en aucun cas aux fonctions de base du système d'exploitation, telles que les opérations de copie de fichiers.

Le premier plan avant tout

Pour Windows 8, nous nous sommes imposé une règle devant s'appliquer à la grande majorité des applications de style Metro : si une application n'est pas à l'écran et que l'écran n'est pas allumé, cette application ne doit pas influer sur l'autonomie de la batterie. Pour autant, WinRT et le modèle utilisateur n'empêchent pas le fonctionnement multitâche. Nous avons voulu repenser la manière dont le code prend en compte les fonctionnalités matérielles modernes, les besoins réseau, les formats d'appareils et les notions de fiabilité/sécurité/confidentialité. Il y aura bien sûr des exceptions (synchronisation de la messagerie en arrière-plan, outils pour ordinateurs de bureau, etc.), mais dans la majorité des cas, l'application fonctionne principalement quand vous interagissez directement avec elle. Lorsqu'une application n'est pas au premier plan, nous souhaitons qu'elle soit entièrement suspendue ou qu'elle utilise des ressources limitées, sur la base d'un ensemble commun de fonctionnalités d'arrière-plan auxquelles l'application a accès (copie de fichiers, par exemple).

Pour simplifier, il existe trois états possibles pour une application :

  1. En cours d'exécution, au premier plan
  2. Suspendue, en arrière-plan
  3. En cours d'exécution d'une activité d'arrière-plan prédéfinie    
En cours d'exécution, au premier plan

Pour les applications de premier plan, les choses sont relativement simples : elles s'exécutent sans limitation et peuvent utiliser toutes les ressources nécessaires en termes de processeur, d'espace disque, de mémoire, etc. En ce sens, les applications de style Metro sont semblables aux applications Windows que nous connaissons tous. Ce principe s'applique aussi bien lorsqu'une seule application est en plein écran que lorsque deux applications sont affichées à l'écran, l'une d'entre elles étant ancrée sur le côté. Cet état suppose que l'écran soit allumé, car cela signifie que l'utilisateur interagit avec le PC.

De nombreux facteurs doivent être pris en compte pour développer des applications rapides et réactives. Lorsque les interfaces graphiques ont commencé à remplacer les interfaces texte et à bouleverser les concepts existants, les développeurs ont dû adopter de nouvelles approches. Aujourd'hui, la conception d'applications plus économes en énergie et en ressources nécessite également d'évoluer. Par exemple, les premiers programmeurs de logiciels Windows étaient parfois frustrés par le concept de WNDPROC et trouvaient que le meilleur moyen de gérer la saisie de caractères consistait à intercepter l'interruption et à traduire la frappe de touche. L'approche basée sur des messages a ensuite inversé ce processus : Windows gère la traduction et indique à votre application quand prendre en compte les frappes de touche, un fonctionnement qui diffère grandement de l'approche initiale. Dans un monde où plus de 75 % des PC vendus sont alimentés par une batterie, les programmeurs doivent évidemment repenser leur manière de travailler.

Cela étant, il est important d'anticiper les applications de demain, afin de prévoir et d'accompagner l'évolution du matériel et des attentes des consommateurs. Le modèle d'application existant devait évoluer pour répondre aux attentes des clients en termes d'économie d'énergie et d'autonomie. Bien évidemment, comme nous le répétons souvent, les applications de bureau que vous utilisez actuellement avec Windows 7 continueront à fonctionner parfaitement, et même mieux, par certains aspects. Au fil du temps, nous donnons à Windows la possibilité d'accomplir plus de tâches en consommant moins d'électricité, par le biais de nouvelles applications vous permettant de parvenir à votre but, qu'il s'agisse de petites applications de loisirs ou d'outils professionnels, sans oublier tous les outils intermédiaires. Les ressources disponibles pour le traitement, les besoins en ressources et les types de calculs à effectuer évoluent. À ce titre, Windows 8 vous offre de nouvelles possibilités de saisir cette opportunité.

Dans une approche axée sur le premier plan, la notion de simultanéité joue un rôle crucial dans le développement d'applications rapides, fluides et réactives. Lors de la conférence //build/, nous avons expliqué comment utiliser les nouveaux outils et les API pour développer des applications acceptant un haut niveau de simultanéité. Les développeurs peuvent ainsi repenser leur manière de coder les scénarios d'utilisation. Par exemple, au lieu de conserver une application d'arrière-plan séparée exécutée en permanence, même lorsque cela n'est pas nécessaire (avec à la clé un gaspillage d'autonomie), les programmeurs peuvent exploiter la nouvelle infrastructure de tâches d'arrière-plan du système d'exploitation pour exécuter les activités nécessaires en arrière-plan de façon efficace sur le plan énergétique. Il existe plusieurs façons d'exécuter des tâches d'arrière-plan : par le biais de notifications en mode push, d'événements planifiés ou même de données réseau entrantes. En outre, le système est suffisamment intelligent pour permettre d'exécuter plus souvent les applications en arrière-plan lorsque votre PC est branché sur le secteur. Au final, il s'agit là d'un vrai avantage en termes d'autonomie, car le code est exécuté uniquement lorsque cela est nécessaire et non de façon permanente. Par exemple, votre lecteur de flux d'actualités peut télécharger automatiquement les contenus au milieu de la nuit lorsque votre ordinateur est branché sur le secteur, ce qui vous permet de disposer des contenus les plus récents lorsque vous ouvrez l'application. Ce fonctionnement ne limite en aucun cas votre capacité à accomplir vos tâches habituelles : il s'agit simplement d'une nouvelle façon de les accomplir, en réduisant l'impact sur les ressources du système.

Outre les améliorations apportées à la manière dont le code des applications peut s'exécuter en arrière-plan, nous avons apporté de nombreuses améliorations à l'infrastructure d'outils et à l'API WinRT, pour faciliter la programmation asynchrone et la rendre plus performante encore. Les applications rapides et réactives s'appuient sur un solide socle de programmation asynchrone. Au cours de la conférence //build/, Anders Hejlsberg a présenté une approche WinRT permettant de créer une expérience utilisateur asynchrone centrée sur l'affichage d'un immense catalogue d'articles. Des techniques telles que celle-ci contribueront à l'émergence de scénarios performants et à l'amélioration des performances des applications au premier plan, ainsi qu'à l'allongement de l'autonomie des batteries.

Suspension des applications en arrière-plan

Avec ce deuxième état, si vous lancez une application et que vous passez à une autre application, le système d'exploitation suspend la première. Par conséquent, le planificateur de Windows (le composant chargé de planifier l'accès des processus et des threads au processeur) n'inclut pas l'application dans sa planification. Puisque le système d'exploitation ne planifie pas l'exécution de l'application, celle-ci n'utilise pas le processeur, qui peut à son tour fonctionner en mode basse consommation. Le fait de placer le processeur en mode basse consommation joue un rôle essentiel dans l'amélioration de l'autonomie. Certains développeurs connaissent peut-être déjà cette approche, car c'est exactement ce qui arrive à un processus que vous mettez en pause dans le cadre du débogage d'une application. Tous les threads exécutés pour l'application sont suspendus. Les applications suspendues sont en quelque sorte mises en cache. Comme l'application est déjà initialisée, vous profitez des avantages liés au basculement instantané entre applications. Le planificateur du système d'exploitation n'a plus qu'à autoriser la reprise de l'exécution de l'application, lorsque celle-ci est remise au premier plan.

Grâce à ce nouvel état suspendu, vos applications sont disponibles instantanément lorsque vous les affichez. Lorsque vous repassez à une application suspendue, son exécution reprend instantanément, là où vous l'aviez laissée précédemment. Ainsi, vous pouvez basculer d'une application à l'autre plus rapidement que dans les versions précédentes de Windows. Vous n'avez plus à vous soucier du nombre d'applications exécutées sur votre PC : les vignettes dynamiques vous informent sur vos applications, et avec la fonctionnalité d'enregistrement et de restauration des états, les applications se comportent comme si elles étaient exécutées de façon permanente.

Supposons par exemple que vous utilisiez une application permettant de gérer les prochains vols sur lesquels vous allez voyager. Cette application peut afficher l'état du prochain vol par le biais d'une notification dans la vignette dynamique, et ce, même si l'application est suspendue ou n'est pas exécutée en arrière-plan. Lorsque vous accédez à cette application, elle s'ouvre à l'endroit où vous vous trouviez (recherche de vols, par exemple), comme si vous ne l'aviez pas fermée. Puisque la notion même d'exécution devient abstraite, nous avons décidé de considérer que le fait de lancer une application revient exactement au même que de basculer vers une application. Lorsque vous basculez vers une application par le biais de la pile de retour, du raccourci Alt+Tab ou de l'écran Démarrer, vous pouvez revenir instantanément à une application suspendue.

Ainsi, la liste des programmes « en cours d'exécution » est en tout point identique à celle des programmes affichés sur l'écran Démarrer. Si vous utilisez un clavier, n'oubliez pas que le raccourci Alt+Tab fonctionne pour l'ensemble des programmes en cours d'exécution, comme dans Windows 7, et que la barre des tâches fonctionne également de la même manière pour les applications de bureau (elle a même été optimisée pour les scénarios d'utilisation faisant appel à plusieurs écrans).

Grâce à la fonctionnalité de suspension des applications, vous pouvez basculer très rapidement d'une application à l'autre sans mettre à mal l'autonomie de la batterie, ni les performances du système. Ce fonctionnement diffère de celui des applications de bureau traditionnelles, avec lesquelles nous avons adapté nos habitudes de travail pour optimiser l'utilisation des applications dont le lancement est particulièrement long.

Il existe deux cas dans lesquels nous ne suspendons pas une application même si elle n'a aucune activité en arrière-plan. En premier lieu, si vous n'avez pas encore lancé l'application au cours de la session (depuis votre connexion), vous devez appuyer sur la vignette de l'application pour la lancer. Le deuxième cas est plus intéressant. Le système peut mettre fin à l'état suspendu d'une application et l'arrêter purement et simplement s'il commence à manquer de mémoire. Les ressources en mémoire ne sont pas infinies et nous souhaitons avant tout que les applications que vous utilisez le plus fréquemment soient disponibles instantanément. Si vous n'avez pas utilisé une application depuis un certain temps et que le système d'exploitation a besoin de plus de mémoire, il arrête l'une des applications suspendues. Ce scénario est en principe peu fréquent, car le gestionnaire de mémoire s'occupe des applications suspendues et les enregistre sur le disque (qui possède en général une capacité supérieure à la mémoire physique). Lorsque vous revenez à ces applications, elles sont instantanément prêtes à l'emploi. Cependant, dans certains cas, le système n'a pas besoin d'arrêter une application suspendue. Cela se produit généralement lorsque plusieurs utilisateurs ont une session ouverte sur un même PC ou lorsque vous utilisez de nombreuses applications consommant beaucoup de mémoire.

Pour déterminer quelles applications doivent être arrêtées, le système d'exploitation prend en compte plusieurs éléments : date de la dernière utilisation de l'application, quantité de mémoire utilisée, etc. Dans l'idéal, le système d'exploitation arrête le moins possible d'applications suspendues, pour vous permettre de basculer vers les applications suspendues aussi souvent que possible. Même si l'application peut être arrêtée à partir de l'état suspendu, cela n'a que très peu d'incidence sur l'expérience utilisateur, car le modèle d'application a évolué : les développeurs peuvent enregistrer facilement l'état de l'application de façon incrémentielle pendant qu'elle est utilisée, puis rétablir cet état lorsqu'elle est relancée. Par exemple, l'application de suivi des vols peut enregistrer la page de recherche de vols qui était affichée au moment où vous avez décidé de passer à une autre application, puis utiliser ces informations pour réafficher cette page lorsque vous revenez à l'application, même si elle semble avoir été arrêtée entre temps.

Il convient de remarquer que même si plusieurs applications suspendues en arrière-plan utilisent de la mémoire, cela n'a pas d'incidence sur votre PC en termes de performances ou d'autonomie. En fait, vous n'avez plus du tout besoin de gérer ou de fermer directement les applications. Cette approche est désormais couramment utilisée sur de nombreux appareils. Elle représente une vision plus moderne de la conception des systèmes d'exploitation (pour en savoir plus, consultez par exemple ce billet de Frasier Spears consacré au fonctionnement multitâche dans iOS).

Même si vous n'avez pas besoin de fermer des applications pour améliorer les performances ou la batterie, vous pourrez fermer des applications dans la version bêta de Windows 8, disponible très bientôt. Il peut en effet arriver qu'une application subisse une défaillance ou que vous souhaitiez purement et simplement vous débarrasser d'une application parce qu'elle ne vous sert plus. Pour fermer une application, vous pourrez utiliser la souris, un geste tactile ou un raccourci clavier. Nous détaillerons quelques-unes des modifications apportées dans ce domaine dans un prochain billet, qui sera publié lors de la sortie de la version bêta... Soyez patients !

Dans la version Developer Preview, vous pouvez constater par vous-même le fonctionnement de l'état suspendu en ouvrant le nouveau Gestionnaire des tâches après avoir lancé quelques applications fournies dans cette version (Stocks, News ou Weather, par exemple). Vous remarquerez que le taux d'utilisation du processeur est de 0 %, car même si ces applications sont en mémoire, elles sont inactives et n'ont aucune incidence sur l'autonomie de la batterie ou les performances.

Applications de style Metro affichées dans le Gestionnaire des tâches ; plusieurs applications de style Metro indiquent la mention « État : Suspendue, 0 % du processeur utilisé »

Les applications de style Metro sont suspendues en arrière-plan

Exécution des activités d'arrière-plan

Comme nous l'avons déjà mentionné, les développeurs doivent réussir à exécuter les opérations réalisées jusqu'ici en arrière-plan sans mettre à mal l'autonomie de la batterie. Il est très facile de solliciter un fonctionnement multitâche et de l'activer, mais en contrepartie, si toutes vos applications exécutent en permanence des tâches d'arrière-plan, vous n'arriverez jamais à améliorer l'autonomie de la batterie. Or, il s'agit là d'un vrai problème, dans un monde mobile où les ordinateurs portables sont connectés en permanence. Avec Windows 8 et WinRT, nous avons créé de nouvelles API pour gérer les opérations d'arrière-plan des applications de style Metro.

Rappelons-le, vos applications de bureau continuent à s'exécuter comme avant, mais elles continuent aussi à consommer de l'électricité (même si nous avons là aussi apporté plusieurs améliorations, que nous évoquerons quelques paragraphes plus bas).

Nous nous sommes fixés pour objectif de trouver un juste équilibre entre, d'une part, la richesse fonctionnelle et le fonctionnement multitâche que les utilisateurs de Windows sont en droit d'attendre et, d'autre part, les économies à réaliser en termes d'utilisation des ressources. Pour cela, nous avons établi une liste de scénarios types à prendre en compte et nous avons cherché à permettre le bon déroulement de ces scénarios de la façon la plus économique possible en termes de ressources. Au final, nous avons mis au point différents API de gestion multitâche en arrière-plan. Elles permettent aux applications de réaliser des actions en arrière-plan en économisant les ressources et la batterie. Les développeurs d'applications peuvent quant à eux se concentrer sur les fonctionnalités de l'application sans devoir fournir des efforts supplémentaires.

Nous avons mis en place une approche axée autour de scénarios, pour permettre l'exécution des tâches les plus courantes que les applications doivent réaliser en arrière-plan. Voici les tâches exécutables en arrière-plan pour les applications de style Metro dans WinRT :

  • Lecture de musique
  • Téléchargement d'un fichier ou envoi d'un fichier vers un site Web
  • Maintien de l'activité des vignettes dynamiques et actualisation de leur contenu
  • Impression
  • Réception d'un appel de voix sur IP
  • Réception d'un message instantané
  • Réception d'un courrier électronique
  • Partage de contenu (mise en ligne de photos sur Facebook, par exemple)
  • Synchronisation du contenu avec un appareil connecté (synchronisation de photos, par exemple)

Cet ensemble de scénarios s'appuie sur des modèles couramment utilisés par les développeurs et sur des modèles dont nous anticipons l'émergence. Certains scénarios utilisent le même niveau de ressources de plateforme. Examinons chacun d'entre eux, pour vous permettre de mieux comprendre la portée et la puissance de Windows 8 :

Scénario

Description

Téléchargement montant ou descendant en arrière-plan

L'accès à des contenus et leur stockage sur Internet sont des scénarios relativement courants pour les applications. Nous souhaitons vous permettre de profiter de contenus actualisés et déjà chargés lorsque vous revenez à une application. Ce principe de fonctionnement est particulièrement utile pour les applications de type magazine ou journal. Les applications peuvent utiliser la nouvelle API de transfert en arrière-plan pour effectuer des téléchargements montants et descendants en arrière-plan. Cette API est entièrement déléguée : le système d'exploitation lui-même réalise l'opération de téléchargement. Ainsi, le code de l'application sort du cadre de fonctionnement, ce qui contribue à améliorer l'autonomie de la batterie.

Lecture audio en arrière-plan

Nous souhaitons continuer à vous permettre d'effectuer plusieurs activités à la fois, en particulier pour des opérations aussi simples que l'écoute de musique. Toutes les applications multimédias et les applications de communication sont capables de lire de la musique en arrière-plan. Pour plus d'efficacité, nous suspendons l'application lorsque vous suspendez la lecture audio.

Partage

Si votre application envoie du contenu à un service cloud par le biais du "charm" Partager, elle peut terminer l'opération en arrière-plan.

Applications de l'écran de verrouillage

Les applications de l'écran de verrouillage offrent des informations actualisées. Les notifications peuvent être affichées à tout moment, même lorsque vous n'utilisez pas l'application. Les exemples les plus courants sont les applications de messagerie, de voix sur IP et de messagerie instantanée. Les applications de l'écran de verrouillage peuvent envoyer des notifications et synchroniser vos données, même en arrière-plan lorsque l'appareil fonctionne sur batterie, et même lorsque l'écran est verrouillé.

Impression

Vous pouvez imprimer des documents même lorsque l'application à l'origine de la tâche d'impression a été mise en arrière-plan.

Synchronisation d'appareils

Vous pouvez synchroniser des contenus entre un appareil connecté (un appareil photo, par exemple) et votre PC, même si l'application n'est pas visible à l'écran.

Vignettes dynamiques avec Windows Notification Service

Les applications peuvent donner l'impression d'être en permanence en cours d'exécution (même si elles sont suspendues) en envoyant des notifications en mode push à votre PC Windows 8, afin d'afficher le contenu le plus actualisé possible à la vignette dynamique de l'application.

Notifications planifiées

Les applications peuvent envoyer des notifications concernant un événement à une heure spécifique, soit en mettant à jour une vignette à telle ou telle heure (pour un rendez-vous, par exemple), soit en affichant une notification sur le Bureau, par exemple pour vous rappeler d'effectuer une tâche avant de quitter votre travail. Ces événements sont planifiés par l'application, mais Windows se charge de l'envoi de la notification, ce qui limite l'incidence de l'opération sur l'autonomie.

Tâches d'arrière-plan

Les applications peuvent exécuter du code lorsque certains événements se produisent, par exemple à intervalle régulier ou lorsque vous vous connectez à Windows ou à un service de messagerie instantanée. Les applications de l'écran de verrouillage peuvent exécuter du code toutes les 15 minutes. Les applications qui ne figurent pas sur l'écran de verrouillage peuvent quant à elles s'enregistrer pour exécuter du code toutes les 15 minutes, à condition que l'appareil soit branché sur le secteur.

Veille connectée et appareils disposant d'un mode de veille

Au moment où Windows 8 sera commercialisé, la gamme des PC disponibles sur le marché sera plus vaste que jamais. Bon nombre d'entre eux disposeront d'options d'alimentations similaires à ceux qui exécutent Windows 7 à l'heure actuelle. Au-delà de l'arrêt pur et simple de l'appareil, ils pourront entrer dans un état de veille, soit à la demande, soit au terme d'une période d'inactivité. En veille, toutes les activités du système sont suspendues.

Consommation électrique entre 0 et 60 secondes : écran allumé ; entre 60 et 120 secondes : écran estompé ; entre 120 et 180 secondes : écran éteint ; entre 180 et 240 secondes : mode veille (S3). Les applications de bureau continuent à s'exécuter pendant 180 secondes, puis s'arrêtent lorsque le PC entre en mode veille. Les applications de style Metro sont gérées par le système d'exploitation pendant 180 secondes, puis s'arrêtent lorsque le PC entre en mode veille.

Exécution des applications sur les PC disposant d'un mode veille (paramètres par défaut)

Le graphique ci-dessus montre que lorsque le PC est inactif avant d'entrer en mode veille, les applications de bureau continuent à s'exécuter de la même manière que dans les versions précédentes de Windows, alors que les applications de style Metro fonctionnent en mode géré (décrit précédemment). Lorsque le PC entre en veille, les applications de bureau et les applications de style Metro sont entièrement suspendues. Ce principe de fonctionnement est idéal en termes d'autonomie : lorsque la machine est en veille, elle ne consomme pratiquement pas d'électricité. En revanche, il n'est pas idéal sur le plan de l'actualisation des données, car une machine en veille ne reçoit pas les mises à jour des vignettes dynamiques, ne télécharge pas les nouveaux messages et ne peut pas se préparer à envoyer des alarmes ou d'autres notifications.

Comme Pat Stemen l'a évoqué dans son billet, nous avons mis en place un nouvel état d'alimentation similaire à ceux des smartphones, destiné aux nouveaux PC qui sont rarement éteints totalement. Généralement basés sur des architectures Soc (System on Chip), ces PC sont particulièrement intéressants dans le sens où au lieu de s'éteindre pendant les périodes d'inactivité, ils entrent en mode très basse consommation, sans pour autant s'arrêter. Nous appelons ce nouveau mode « veille connectée ». Il offre de nombreux avantages dans le cadre d'une utilisation en mode connecté : la messagerie est toujours à jour et l'utilisateur peut recevoir des messages instantanés ou des appels, tout en profitant d'une autonomie impressionnante. Le graphique ci-dessous montre le comportement des applications de bureau et des applications de style Metro en veille connectée. Pour que tout cela fonctionne de façon efficace, nous devions prendre en compte aussi bien les applications de style Metro (dont nous savons qu'elles peuvent maîtriser efficacement les ressources système, comme nous l'avons déjà expliqué) que les applications de bureau, qui représentent un vrai défi, car depuis des années, elles ont été conçues pour accéder sans limite aux ressources système (en étant exécutées au premier plan ou en arrière-plan) ou pour ne pas y accéder du tout (lorsque le PC est en veille).

Consommation électrique entre 0 et 60 secondes : écran allumé ; entre 60 et 120 secondes : écran estompé ; entre 120 et 180 secondes : écran éteint ; entre 180 et 240 secondes : veille connectée. Les applications de bureau continuent à être exécutées pendant 180 secondes, puis s'arrêtent lorsque le PC entre en mode de veille connectée. Les applications de style Metro sont gérées en permanence par le système d'exploitation, y compris lorsque le PC entre en mode de veille connectée.

Exécution des applications sur les PC disposant d'un mode de veille connectée

Pour cela, nous avons ajouté un nouveau composant à Windows 8 : « Desktop Activity Moderator », qui s'exécute uniquement sur les plateformes disposant d'un mode de veille connectée. Ce composant a été conçu pour limiter l'utilisation des ressources par les applications de bureau lorsque l'appareil entre en mode de veille connectée. Si nous autorisions les applications à continuer à s'exécuter sans limite dans ce mode basse consommation, le PC viderait la batterie bien plus rapidement. Au lieu de cela, nous suspendons les applications de bureau, de façon à ce qu'elles n'utilisent plus de ressources et à ce que l'autonomie soit optimale. Du point de vue des applications, tout se passe comme si le PC avait simplement été mis en veille. Lorsque le PC sort du mode de veille connectée, l'application reprend son fonctionnement normal, comme si le PC sortait simplement d'un état de veille.

Cependant, plusieurs composants du système sont indispensables au mode de veille connectée et nous ne pouvons pas les suspendre. Il s'agit notamment des pilotes, de certains services de boîte de réception et de services tiers, mais aussi, bien évidemment, des applications de style Metro utilisant les fonctionnalités d'arrière-plan déjà évoquées. Ces composants offrent différentes fonctionnalités : réaction à l'action de l'utilisateur lorsque celui-ci fait pivoter l'appareil, fonctionnalité réseau, etc. Nous autorisons ces processus à s'exécuter en mode de veille connectée après les avoir évalués précisément, pour vérifier qu'ils n'influent pas excessivement sur l'autonomie. En outre, différents processus doivent être exécutés en réponse aux activités du système. L'exécution de ces processus est limitée à de courtes périodes, jusqu'à ce qu'une activité d'arrière-plan soit initiée. Dès cet instant, elles peuvent s'exécuter sans limite. Les antivirus font partie des exemples types de ce principe de fonctionnement : ils réalisent souvent une analyse en réponse à une activité du système. Lorsqu'une activité d'arrière-plan est en cours (réception d'un courrier électronique par le biais des capacités d'arrière-plan), l'antivirus peut fonctionner sans entrave. En revanche, la majeure partie du temps, en l'absence de toute activité réseau entrante, l'activité est minimale et ces composants sont bridés afin de limiter leur impact sur l'autonomie.

Résumé

Comme vous pouvez le constater, nous avons consacré des efforts importants à l'optimisation de l'autonomie lors de la conception de Windows 8. Nous avons conçu le nouveau modèle d'application de telle sorte que l'appareil profite d'une longue autonomie, tout en offrant des expériences utilisateur connectées. Les applications conçues pour Windows 7 continueront à fonctionner de la même manière qu'auparavant. Quant aux applications de style Metro, elles offriront de nouvelles expériences connectées consommant moins d'électricité, en exploitant l'infrastructure d'arrière-plan fournie par le système d'exploitation.

-- Sharif Farag et Ben Srour

  • Loading...
Leave a Comment
  • Please add 6 and 5 and type the answer here:
  • Post