Offrir une excellente expérience de démarrage et d’arrêt
Cette section fournit une vue d’ensemble de l’expérience de démarrage rapide et de nos recommandations aux partenaires pour offrir la meilleure expérience on/off aux clients.
Les PC peuvent être activés et désactivés plusieurs fois par jour. En fonction des modèles d’utilisation et de la capacité d’autonomie de la batterie de l’appareil, un PC peut s’arrêter, mettre en veille ou mettre en veille prolongée. Le démarrage du système est la première expérience que les utilisateurs ont avec leur appareil et est une expérience récurrente pendant la durée de vie de l’appareil. Les données de télémétrie client nous indiquent que les utilisateurs démarrent et arrêtent leur PC au moins une fois par jour. Bien que la fonctionnalité de secours connectée réduise la fréquence à laquelle un appareil doit être démarré, le démarrage peut toujours être nécessaire pour les mises à jour logicielles et du microprogramme, l’état de batterie faible et les modifications de configuration majeures apportées à l’appareil.
À compter de Windows 8.x, la vitesse de la transition on/off est considérablement plus rapide que les versions précédentes de Windows. Le modèle d’interaction utilisateur utilisé précédemment était d’interrompre un démarrage avec des appuis sur la touche pour indiquer d’autres chemins de démarrage. Avec un temps de démarrage beaucoup plus rapide, les interruptions de démarrage sont peu pratiques et affectent négativement l’expérience de démarrage. Dans les versions précédentes, il était important d’arrêter le processus de démarrage le plus tôt possible pour les points de décision, comme le démarrage vers un autre système d’exploitation, car le déplacement vers l’arrière était un processus long et lent. Il était également beaucoup plus facile, avec des temps de démarrage lents, de créer des périodes pendant lesquelles les appuis sur les touches pouvaient être détectés et activés. Dans Windows 8.x et Windows 10, ce n’est plus le cas.
Les performances de démarrage par défaut se sont considérablement améliorées grâce à la technologie de mise en veille prolongée. Pour plus d’informations sur les améliorations apportées aux performances de l’expérience on/off, consultez Interruption et reprise en veille prolongée (S4). Les considérations de cette rubrique décrivent le modèle utilisateur pour les transitions rapides on/off, les options liées à ces transitions et les composants requis par les OEM/ODM pour fournir l’expérience.
Considérations
La main source de retards de démarrage est le préchargement du logiciel OEM. Le démarrage rapide représente environ 50 % du temps de démarrage global et est directement affecté par les processus internes et tiers suivants démarrés au démarrage :
Services qui reprennent
Applications de démarrage, telles que les raccourcis en cours d’exécution de la barre d’état, les indicateurs OEM status, et ainsi de suite
Activité antivirus
Ces processus consomment des ressources système du processeur et du disque et peuvent entraîner un goulot d’étranglement, ce qui peut rendre l’appareil non répond, retarder les heures de lancement de l’application ou ralentir l’exécution des applications.
Lors de l’optimisation des performances on/off, tenez compte des suggestions suivantes :
Déterminez quels processus tiers non-boîte de réception sont chargés et exécutés sur vos systèmes.
Déterminez ce qui est démarré au démarrage via des clés d’exécution du Registre ; En règle générale, il s’agit de processus liés au matériel IHV.
Évitez d’inclure des processus de code managé dans le chemin de démarrage.
Utilisez des techniques pour retarder les processus de démarrage au démarrage.
Envisagez de convertir des applications de bureau traditionnelles en applications du Microsoft Store, ce qui n’a pas d’impact sur le démarrage. Utilisez des IHV pour tirer parti des applications d’appareil du Microsoft Store.
Découvrez comment la consommation de mémoire affecte les temps de transition on/off et suivez ces suggestions :
Optimisez la consommation de mémoire pour réduire la taille du fichier de mise en veille prolongée.
Utilisez le nouveau mode Diagnostics Hiberfile.
Évitez d’activer la mise en veille hybride sur les ordinateurs portables et les ultraportables, car elle génère un fichier de mise en veille prolongée (S3).
Migrez les processus de mise à jour pour utiliser la am afin de réduire le nombre de processus chargés.
Comprenez que le débit de disque est critique pour les performances on/off. Par exemple :
En moyenne, les temps de lecture/écriture du hiberfile représentent 50 % du temps de démarrage de l’écran de démarrage.
La plupart des systèmes sont liés au disque au démarrage.
Un disque dur/SSD plus rapide peut atténuer l’effet d’un préchargement logiciel important chargé et initialisé au démarrage.
Envisagez d’équilibrer le processeur, les performances du disque et la capacité de mémoire.
Comprenez que les disques hybrides sont bénéfiques pour les performances on/off et envisagez d’utiliser la nouvelle fonctionnalité d’indicateur de lecteur hybride.
Démarrage rapide
À compter de Windows 8.x, le scénario d’arrêt et de redémarrage par défaut a été mis à jour et nommé démarrage rapide. Le démarrage rapide commence par le processus d’arrêt et inclut l’écriture de données sur le disque comme le processus de mise en veille prolongée. Une différence clé est que toutes les sessions utilisateur (session 1) sont déconnectées et que les informations restantes sont écrites dans le fichier de mise en veille prolongée. Lorsque vous démarrez le PC à partir de cet état, Windows charge l’état précédemment initialisé en lisant à partir du fichier de mise en veille prolongée, au lieu d’exécuter le processus de démarrage complet dans lequel Windows, les pilotes, les appareils et les services sont initialisés. Cette méthode accélère le processus d’initialisation du verrou ou de l’écran d’accueil.
En outre, l’utilisation de la technologie de mise en veille prolongée a été développée pour créer une nouvelle expérience de démarrage et d’arrêt par défaut beaucoup plus rapide qu’un démarrage complet. Pour plus d’informations, consultez le diagramme suivant :
La séquence de démarrage et d’arrêt plus rapide utilise l’infrastructure de mise en veille prolongée pour placer le PC en veille prolongée. Contrairement à un arrêt et un démarrage complets, la session utilisateur est fermée et une mise en veille prolongée est effectuée. Par conséquent, le fichier de mise en veille prolongée est beaucoup plus petit, ce qui garantit que le processus de mise en veille prolongée et de reprise est plus rapide. Cette séquence tire également parti des optimisations de parallélisation.
Les développeurs qui créent des pilotes ou des applications avec un service système et des intégrateurs système doivent surveiller les problèmes de qualité des pilotes, tels que les fuites de mémoire. Bien que la qualité des pilotes ait toujours été importante, notez que le temps de vie entre les redémarrages du noyau peut être considérablement plus long que sur les versions précédentes de Windows, car pendant les arrêts initiés par l’utilisateur, le noyau, les pilotes et les services sont conservés et restaurés, et pas seulement redémarrés.
Démarrage complet
Pour une expérience de démarrage optimale, tenez compte des suggestions suivantes :
Équilibrez les performances du processeur, les performances du disque et la capacité de mémoire.
Optimisez les performances de routage de lecture UEFI.
Assurez-vous que les pilotes des appareils de nœud feuille suivent les instructions de reprise rapide.
Assurez-vous que les pilotes terminent leurs IIP de configuration S0 aussi rapidement que possible pour empêcher d’autres appareils de démarrer leurs IRP de puissance définie S0.
Valider les pilotes et les services contre les fuites de mémoire.
Évitez d’inscrire un service pour recevoir des notifications d’événements de gestion de l’alimentation, sauf si cela est absolument nécessaire.
Assurez-vous que les pilotes n’attendent pas pour terminer leur S_IRP jusqu’à ce que leur D_IRP soit terminé. Cela empêchera d’autres appareils de recevoir leur S_IRPs, ce qui entraînera des retards de sérialisation et augmentera le temps de suspension global.
Comportement de l’API d’arrêt
Pour garantir la meilleure compatibilité avec les applications tout en activant la meilleure expérience possible pour les nouvelles applications, de nouveaux indicateurs de demande d’arrêt pour un démarrage rapide ont été créés. Le tableau suivant décrit les nouveaux indicateurs et le comportement des API d’arrêt. Les détails de ces API et indicateurs sont disponibles sur MSDN.
API | Comportement d’arrêt |
---|---|
InitiateSystemShutdownEx | Effectue toujours un arrêt complet |
InitiateSystemShutdown | Effectue toujours un arrêt complet |
InitiateShutdown | Effectue un arrêt pour un démarrage rapide à l’aide de l’indicateur SHUTDOWN_HYBRID |
ExitWindowsEx | Effectue un arrêt pour un démarrage rapide à l’aide de l’indicateur EWX_HYBRID_SHUTDOWN |
Distinguer le moment où une mise en veille prolongée ou un arrêt pour un démarrage rapide se produit
Les pilotes de périphérique recevront une notification pour passer à un état d’alimentation cible S5 à l’arrêt plutôt qu’à un état de mise en veille prolongée de S4, qui est l’état d’alimentation réel. Cela permet aux pilotes de définir un comportement de veille différent pour un démarrage rapide après un arrêt. Les états cible et effectif se trouvent dans la structure System_Power_State_Context.
Pour la plupart des appareils, la distinction entre le comportement de veille S4 et S5 est contrôlée au niveau de la couche du pilote de bus. Si vous implémentez votre propre pilote de bus et que vous devez faire la distinction entre ces deux comportements, contactez votre représentant Microsoft pour plus d’informations. Pour offrir une expérience de démarrage rapide, suivez les meilleures pratiques suivantes :
Équilibrez les performances du processeur, les performances du disque et la capacité de mémoire.
Optimisez les performances de routage de lecture UEFI.
Assurez-vous que les pilotes des périphériques de nœud feuille doivent suivre des instructions de reprise rapide.
Assurez-vous que les pilotes terminent leurs IIP de puissance S0 aussi rapidement que possible pour empêcher d’autres appareils d’obtenir leurs IRP de puissance définie S0.
Évitez de lancer des applications au démarrage, à l’exception des applications anti-programme malveillant et d’appareil.
Ne lancez jamais d’applications au démarrage à l’aide de RunOnce.
Évitez les applications de code managé dans le chemin de démarrage.
Retarder le démarrage des applications non critiques à l’aide du Planificateur de tâches.
Valider les pilotes et les services contre les fuites de mémoire.
Inscrivez un service pour recevoir la notification des événements de gestion de l’alimentation uniquement si cela est absolument nécessaire.
Assurez-vous que les pilotes n’attendent pas pour terminer leur S_IRP jusqu’à ce que leur D_IRP soit terminée. Cela empêchera d’autres appareils de recevoir leur S_IRPs, ce qui entraînera des retards de sérialisation et augmentera le temps de suspension global.
Suspension et reprise de la mise en veille prolongée (S4)
Dans une transition de mise en veille prolongée, tout le contenu de la mémoire est écrit dans un fichier sur le lecteur système principal. Ce processus conserve l’état de Windows, des applications et des appareils. Si l’empreinte mémoire combinée consomme toute la mémoire physique, le fichier de mise en veille prolongée doit être suffisamment volumineux pour garantir qu’il y a suffisamment d’espace pour enregistrer tout le contenu de la mémoire physique. Étant donné que les données sont écrites dans un stockage non volatile, la DRAM n’a pas besoin de maintenir l’actualisation automatique et peut être mise hors tension. Ce comportement entraîne une très faible consommation d’énergie, similaire à l’état hors tension du PC.
Scénarios utilisateur pour la mise en veille prolongée
Voici les scénarios critiques qui nécessitent une technologie de mise en veille prolongée dans les PC exécutant la version moderne de Windows :
Assouvrez pour mettre en veille prolongée : Un système est laissé inactif et passe automatiquement à la mise en veille prolongée.
Batterie critique : Windows met automatiquement en veille prolongée le PC pour éviter la perte de données lorsque la batterie est hors tension.
Condition thermique : Un système atteint une température prédéfinie qui nécessite une mise sous tension automatique du système pour protéger les circuits.
Initié par l’utilisateur : Un utilisateur sélectionne la mise en veille prolongée pour enregistrer l’état utilisateur actuel avec une consommation d’alimentation très minimale.
Bien que cette liste puisse évoluer à mesure que les besoins et les fonctionnalités des PC évoluent, il est prévu que de nombreux PC continueront à utiliser la mise en veille prolongée, en particulier lorsque la veille connectée n’est pas possible.
Phase de mise en veille prolongée
Dans la phase de mise en veille prolongée, Windows avertit les différents composants qu’une phase de mise en veille prolongée se produit, puis enregistre le contexte et l’état du système de l’utilisateur. Les données sont compressées et écrites sur le disque ; le système utilise tous les cœurs de processeur sur le système pour compresser les données en mémoire et utilise un seul processeur lors de l’écriture des données sur le disque. Une fois toutes les données écrites sur le disque, Windows avertit le microprogramme qu’il est prêt pour la mise hors tension.
La notification du microprogramme s’effectue en écrivant dans les registres de type veille avec les valeurs fournies dans l’objet S4, comme défini dans ACPI 4, Section 4.5, Tableau 4-13 et Section 7.3.4. Cela indique au microprogramme qu’à la prochaine mise sous tension, un cv sera tenté plutôt qu’un démarrage complet.
Phase de reprise
La reprise de la mise en veille prolongée commence par le microprogramme POST, qui est similaire à un démarrage complet. Le gestionnaire de démarrage Windows détecte qu’un cv de mise en veille prolongée est requis en détectant un fichier de mise en veille prolongée valide et indique au système de reprendre, en restaurant le contenu de la mémoire et tous les registres architecturaux. Dans le cas d’un CV en veille prolongée, le contenu de la mémoire est lu à partir du disque, décompressé et restauré, plaçant le système dans l’état exact dans lequel il se trouvait lors de son hibernation. Une fois le contenu de la mémoire restauré, les appareils sont redémarrés et l’ordinateur revient à un état d’exécution, prêt pour la connexion.
Notez que bien que les pilotes de périphérique et les services soient avertis, ils ne sont pas redémarrés ; ils sont restaurés à l’état dans lequel ils étaient lorsque la phase de mise en veille prolongée s’est produite.
La restauration de la mémoire système est divisée en deux phases. La première phase est effectuée pour restaurer une partie minimale du noyau, qui est ensuite utilisée pour effectuer la restauration de la mémoire pour le reste du système. La première phase doit être effectuée avec un cœur d’environnement de processeur unique. Toutefois, une fois la partie minimale de la mémoire système restaurée, tous les cœurs du processeur peuvent être utilisés pour paralléliser la décompression et la restauration des données pour le reste de la reprise, ce qui accélère considérablement le processus.
Le processus est encore amélioré en dimensionnant à droite l’algorithme de chiffrement/déchiffrement, en fonction des fonctionnalités du processeur.
Les optimisations de parallélisation sont disponibles uniquement sur les systèmes sur lesquels le système peut garantir qu’il disposera de toutes les données dont il peut avoir besoin à partir de l’environnement minimal disponible. Par conséquent, il ne peut pas être utilisé si les composants ajoutés à la pile de vidage sur incident, qui est utilisée pendant l’opération de reprise en veille prolongée, n’ont pas également été déclarés comme faisant partie de cet environnement minimal. Si vous créez un tel composant, tel qu’un pilote de filtre de vidage sur incident ou un appareil qui utilise un chemin d’vidage sur incident distinct, contactez Microsoft afin qu’il puisse vous guider tout au long de ce processus.
Microprogramme POST
Les temps POST plus rapides réduisent le temps global de mise sous tension à l’état utilisable. Étant donné que le démarrage rapide de Windows est considérablement plus rapide, le temps POST peut devenir une proportion plus importante du temps de démarrage total. Des informations supplémentaires sur les exigences de temps POST sont documentées dans les exigences de certification matérielle Windows. L’analyse montre que les exigences de temps POST sont réalisables sur des plateformes qui énumèrent entièrement et activent un ensemble complet de composants matériels dans l’environnement de pré-système d’exploitation.
Depuis Windows 8, tous les PC doivent fournir leur microprogramme basé sur la spécification UEFI (Unified Extensible Firmware Interface) 2.3.1 ou ultérieure. Étant donné que de nombreux systèmes sont basés sur des conceptions de microprogrammes anciennes et héritées, il existe des possibilités d’optimiser la conception du microprogramme pour mieux prendre en charge les temps POST plus rapides.
L’architecture UEFI passe par plusieurs phases d’initialisation du microprogramme et de la plateforme. En fonction de ces phases bien définies, il existe plusieurs considérations de conception qui peuvent réduire le temps POST.
Sécurité (SEC)
Dans la phase SEC, une plateforme effectue l’extraction, la décompression et la validation du microcode de plateforme stocké sur un flash SPI NOR. À ce stade de mise sous tension, la plateforme dispose de la RAM d’initialisation et de son bus. La liste suivante comprend quelques questions à prendre en compte pour cette phase :
Le microcode est-il spécifique à la référence SKU ou général à plusieurs plateformes ? La taille du microcode affectera le transfert de décompression vers la RAM et la validation.
Envisagez de refactoriser le microcode pour qu’il soit aussi petit que possible.
Peut-on augmenter la vitesse du bus flash SPI NOR ? De nombreuses plateformes prennent en charge plusieurs vitesses d’horloge pour la partie flash SPI NOR. Ils fonctionnent souvent à une fréquence d’horloge inférieure (par exemple, 16 MHz) et peuvent être augmentés.
Envisagez d’augmenter la vitesse du bus pour réduire la latence dans le transfert de microcode du flash NOR vers la RAM.
La plateforme a-t-elle suffisamment de flash NOR ? Pour réduire les coûts, de nombreuses plateformes sont conçues avec la partie NOR minimale, ce qui entraîne une compression plus élevée du microcode et un coût plus élevé pour la décompression.
Envisagez une partie flash NOR plus grande pour stocker du code avec moins de compression.
L’équilibrage de la compression, de la conception et du transfert du microcode peut améliorer les performances des temps POST. À la fin de sec, le microcode validé copie le reste du noyau et de l’environnement UEFI du flash NOR dans la RAM.
Initialisation pré-EFI (Î.-P.-É))
Une fois le noyau en RAM, la plateforme initialise le noyau et commence à valider l’intégrité du code, de la table système et d’autres éléments. Envisagez de concevoir un noyau UEFI optimisé pour votre plateforme au lieu d’un noyau générique non optimisé. Les optimisations peuvent inclure :
Compilation d’indicateurs pendant les builds du noyau qui optimisent les mémoires tampons
Liaison à des modules qui ne sont pas requis pour l’initialisation de la plateforme
Consultez vos concepteurs de microprogrammes pour obtenir des idées sur la façon d’optimiser le noyau UEFI.
Driver Execution Environment (DXE)
À ce stade de l’initialisation, les pilotes UEFI principaux et les pilotes DXE tiers sont chargés. À l’aide des outils fournis par vos concepteurs de microprogrammes, le propriétaire peut identifier les pilotes DXE les moins performants et évaluer si ce code peut être optimisé.
Une autre considération de cette phase réside dans le nombre de pilotes DXE chargés. La plateforme doit charger uniquement les pilotes dont elle a besoin pour garantir un démarrage et ne pas dépendre du matériel facultatif. La conception finale dépend de la sélection du démarrage cible.
Sélection du périphérique de démarrage (BDS)
La sélection du périphérique de démarrage est la dernière étape de l’initialisation de la plateforme avant la remise à Windows. Au cours de cette étape, le microprogramme détermine les périphériques de démarrage présents et ceux à transmettre à l’exécution. Une conception et une optimisation minutieuses des variables de démarrage affecteront la transition vers le chargeur de démarrage Windows.
Énumération USB
La partie énumération USB de POST peut prendre beaucoup de temps. Avec les nouvelles modifications introduites dans Windows 8, l’énumération USB ne sera plus nécessaire dans le cas de démarrage par défaut. Pour des optimisations de temps POST supplémentaires, contactez votre fournisseur de microprogrammes et de silicium. Nous vous recommandons d’énumérer l’usb si la séquence de démarrage est définie pour démarrer sur un autre chemin, par exemple dans les scénarios suivants :
Il existe d’autres options plus haut dans l’ordre de démarrage, par exemple lorsque les options de démarrage de Windows To Go insèrent une entrée de démarrage de classe USB en haut de l’ordre de démarrage.
Une variable de démarrage suivante est définie, ce qui entraîne l’utilisation d’un autre périphérique de démarrage.
Des échecs se produisent sur les démarrages immédiatement précédents.
Applications
Les applications de bureau qui se trouvent dans le chemin de démarrage auront un impact sur la transition et l’efficacité énergétique. Le Gestionnaire des tâches signale les applications de bureau qui ont un impact élevé et informe l’utilisateur des applications de bureau qui sont toujours en cours d’exécution. Pour plus d’informations, consultez Applications de démarrage. Au lieu de démarrer automatiquement des applications de bureau, nous vous recommandons vivement d’utiliser la maintenance automatique et de les exécuter uniquement si nécessaire.
Objectifs recommandés
Important
Tous les objectifs définis excluent le temps d’initialisation du BIOS.
Pour offrir une excellente expérience on/off, il est recommandé qu’un PC réponde aux objectifs des tableaux suivants.
Scénario | Tablette (CS) | Cabriolet | Notebook | Tout-en-un |
---|---|---|---|---|
Démarrage rapide (secondes) | < 25 | <= 15 | <= 15 | <= 15 |
Taille du fichier de mise en veille prolongée (Mo) | < 300 | <= 300 | <= 300 | <= 300 |
Reprise de veille (secondes) | Non applicable | <= 7 | <= 7 | <= 5 |
Métrique | Unité | Objectif |
---|---|---|
Nombre de processus démarrés via les clés d’exécution du Registre Défini comme le nombre total de processus démarrés à chaque démarrage à l’aide des clés d’exécution. A un impact direct sur l’utilisation post-on/off des ressources (processeur et disque). Vous pouvez le trouver en examinant certains événements ETW dans les traces de démarrage rapide (à l’aide de la table Événements génériques) : Nom du fournisseur : Microsoft-Windows-Shell-CoreTask : Explorer_ExecutingFromRunKeyOpcode : win:Start Le champ n°1 de l’événement (Commande) fournit la ligne de commande utilisée pour lancer les processus. |
count |
<= 10 |
E/S de disque de lecture de priorité normale pendant le démarrage rapide Post On/Off Cette métrique peut être obtenue directement à partir des résultats de l’évaluation dans la console d’évaluation Windows, sous : Total Boot > Post On/Off > Total Disk Usage > Normal Priority Reads (octets) |
Mo |
< 30 |
Validation et test
Vous pouvez utiliser Windows Assessment Toolkit pour améliorer les performances de votre PC au-delà des exigences minimales. Les évaluations Windows liées à l’expérience d’activation/désactivation sont les suivantes :
Évaluation de démarrage rapide
Évaluation complète du démarrage et de l’arrêt
Évaluation de secours
Évaluation de la mise en veille prolongée
Les nouvelles versions des évaluations démarrage rapide et mise en veille prolongée incluent un mode Diagnostics de fichier de mise en veille prolongée. Ce mode permet de détecter les pilotes et les applications qui contribuent à une grande taille de fichier de mise en veille prolongée et de détecter les pilotes de stockage qui n’implémentent pas la reprise en plusieurs étapes.
Il existe deux catégories main de pages mémoire stockées dans le fichier de mise en veille prolongée en ce qui concerne l’évaluation du système : les pages de pool de pilotes non paginées et les pages de groupes de travail privés d’application/services.
Le nouveau mode vous aidera à comprendre quels composants logiciels doivent être améliorés pour l’utilisation de la mémoire.
Outils et informations techniques de référence
Vous pouvez en savoir plus sur l’expérience d’activation/désactivation et télécharger des outils pour analyser les performances à partir de ces ressources :
Titre et lien de la ressource | Type de contenu | Description |
---|---|---|
Applications de démarrage | Article | Met en évidence certains des effets des applications de démarrage sur un appareil Windows et fournit des conseils aux développeurs (ISV/IHV) et aux fabricants OEM pour repenser les modèles d’utilisation des applications de démarrage afin d’améliorer l’autonomie et la réactivité de la batterie. |
Résultats des évaluations activées/désactivées | Document | Vous aide à interpréter les résultats générés par les évaluations On/Off (Performances de démarrage (démarrage rapide), Performances de démarrage (démarrage complet), Performances de veille et Performances de mise en veille prolongée. |