Pourquoi les temps de démarrage sont-ils plus rapides sur Windows 8? [fermé]

28

Quelques personnes ont effectué des tests comparatifs de Windows 8 à Windows 7. De nombreuses fonctionnalités ne s'améliorent pas, mais de manière cohérente, le temps de démarrage est meilleur.

Pourquoi Windows 8 démarre-t-il plus rapidement que Windows 7? Est-ce une question de services, et par conséquent, pouvons-nous modifier Windows 7 pour avoir le même temps de démarrage?

Mikhail
la source
1
La réponse du membre "Utilisateur" ci-dessous est la principale raison, mais oui, ils ont réduit les services qui se chargent avec Windows un peu depuis W7, ce qui aide également.
Moab
1
Il y avait encore moins de temps pour installer les applications ...; P
n611x007

Réponses:

37

Depuis le blog Building Windows 8 :

Voici maintenant la principale différence pour Windows 8: comme dans Windows 7, nous fermons les sessions utilisateur, mais au lieu de fermer la session du noyau, nous l'hibernons. Par rapport à une mise en veille prolongée complète, qui comprend un grand nombre de pages de mémoire utilisées par les applications, les données d'hibernation de la session 0 sont beaucoup plus petites, ce qui prend beaucoup moins de temps pour écrire sur le disque. Si vous n'êtes pas familier avec l'hibernation, nous enregistrons effectivement l'état du système et le contenu de la mémoire dans un fichier sur le disque (hiberfil.sys), puis nous le lisons à la reprise et restaurons le contenu en mémoire. L'utilisation de cette technique avec le démarrage nous donne un avantage significatif pour les temps de démarrage, car la lecture du fichier hiber et la réinitialisation des pilotes sont beaucoup plus rapides sur la plupart des systèmes (30 à 70% plus rapides sur la plupart des systèmes que nous avons testés).

C'est plus rapide parce que la reprise de la session du système en veille prolongée est comparativement moins de travail que de faire une initialisation complète du système, mais c'est aussi plus rapide parce que nous avons ajouté une nouvelle capacité de reprise en plusieurs phases, qui est capable d'utiliser tous les cœurs d'un système multicœur dans parallèle, pour séparer le travail de lecture du hiberfile et la décompression du contenu. Pour ceux d'entre vous qui préfèrent l'hibernation, cela se traduit également par une reprise plus rapide de l'hibernation.

Il vaut probablement la peine de mentionner rapidement la façon dont nous traitons le fichier hiber - si vous lisez ceci et que vous allez immédiatement et faites un hiberfile.sys dir / s / ah, vous auriez trouvé que c'est un assez gros fichier sur le disque. Le hiberfile est dimensionné par défaut à 75% de la RAM physique. Le fichier est essentiellement une réservation pour les données d'hibernation qui seront écrites lorsque le système passera en hibernation. Généralement, beaucoup moins d'espace est réellement utilisé, et dans le cas de notre utilisation au démarrage rapide, il s'agit généralement de 10 à 15% de la RAM physique, mais varie en fonction des pilotes, des services et d'autres facteurs. Le système traite également le hiberfile légèrement différemment des autres fichiers sur le disque, par exemple, le service Volume Snapshot l'ignore (un petit avantage en termes de performances. ) Vous pouvez désactiver l'hibernation et récupérer cet espace en exécutant powercfg / hibernate off à partir d'une invite de commandes élevée. Mais sachez que si vous faites cela, cela désactivera complètement l'hibernation, y compris certaines fonctionnalités intéressantes comme le démarrage rapide ainsi que le sommeil hybride, ce qui permet aux systèmes de bureau de faire à la fois un sommeil et un hibernation simultanément, donc si une panne de courant se produit, vous pouvez toujours reprendre de l'état d'hibernation. Vous pouvez également exécuter powercfg / hibernate / size et spécifier une valeur comprise entre 0 et 100 pour le pourcentage de RAM physique à réserver pour le hiberfile - mais soyez prudent! La spécification d'une taille trop petite peut entraîner l'échec de l'hibernation. En général, je recommande de le laisser activé à la valeur par défaut, sauf si vous travaillez sur un système avec un espace disque extrêmement limité. il désactivera complètement l'hibernation, y compris certaines fonctionnalités intéressantes comme le démarrage rapide ainsi que le sommeil hybride, ce qui permet aux systèmes de bureau de faire un sommeil et un hibernation simultanément, donc si une perte d'alimentation se produit, vous pouvez toujours reprendre à partir de l'état d'hibernation. Vous pouvez également exécuter powercfg / hibernate / size et spécifier une valeur comprise entre 0 et 100 pour le pourcentage de RAM physique à réserver pour le hiberfile - mais soyez prudent! La spécification d'une taille trop petite peut entraîner l'échec de l'hibernation. En général, je recommande de le laisser activé à la valeur par défaut, sauf si vous travaillez sur un système avec un espace disque extrêmement limité. il désactivera complètement l'hibernation, y compris certaines fonctionnalités intéressantes comme le démarrage rapide ainsi que le sommeil hybride, ce qui permet aux systèmes de bureau de faire un sommeil et un hibernation simultanément, donc si une perte d'alimentation se produit, vous pouvez toujours reprendre à partir de l'état d'hibernation. Vous pouvez également exécuter powercfg / hibernate / size et spécifier une valeur comprise entre 0 et 100 pour le pourcentage de RAM physique à réserver pour le hiberfile - mais soyez prudent! La spécification d'une taille trop petite peut entraîner l'échec de l'hibernation. En général, je recommande de le laisser activé à la valeur par défaut, sauf si vous travaillez sur un système avec un espace disque extrêmement limité. ce qui permet aux systèmes de bureau de faire à la fois une mise en veille et une mise en veille prolongée simultanément, donc en cas de panne de courant, vous pouvez toujours reprendre à partir de la mise en veille prolongée. Vous pouvez également exécuter powercfg / hibernate / size et spécifier une valeur comprise entre 0 et 100 pour le pourcentage de RAM physique à réserver pour le hiberfile - mais soyez prudent! La spécification d'une taille trop petite peut entraîner l'échec de l'hibernation. En général, je recommande de le laisser activé à la valeur par défaut, sauf si vous travaillez sur un système avec un espace disque extrêmement limité. ce qui permet aux systèmes de bureau de faire à la fois une mise en veille et une mise en veille prolongée simultanément, donc en cas de panne de courant, vous pouvez toujours reprendre à partir de la mise en veille prolongée. Vous pouvez également exécuter powercfg / hibernate / size et spécifier une valeur comprise entre 0 et 100 pour le pourcentage de RAM physique à réserver pour le hiberfile - mais soyez prudent! La spécification d'une taille trop petite peut entraîner l'échec de l'hibernation. En général, je recommande de le laisser activé à la valeur par défaut, sauf si vous travaillez sur un système avec un espace disque extrêmement limité.

Elmo
la source
L'hibernation du noyau n'est pas toute l'histoire. Je ne sais pas ce qu'ils ont changé, mais même sans hibernation du noyau, mon ordinateur portable démarre sensiblement plus vite avec Win8 que Win7 (et j'ai un SSD et un processeur dual-core) ... certains composants ont dû être modifiés pour faire cela arrive, mais je ne sais pas quoi.
Mehrdad
2
Au lieu de copier et coller une réponse, il serait préférable de résumer l'article, puis de le référencer. Citer des articles est bien, mais pas en gros morceaux.
James Mertz
2
L'image le résume.
Elmo
17

En bref, et selon mes propres mots, votre PC a des sessions, la session 0 est réservée à la session du noyau ou de la console et la session 1 est normalement la session des utilisateurs connectés. Ce qu'ils ont fait, c'est prendre la fonctionnalité de mise en veille prolongée que nous avons dans Windows depuis des années, qui met en veille prolongée toutes les sessions et ils l'ont modifiée pour qu'elle n'hiberne que la session 0 (le noyau). Ça va comme ça:

  • Vous cliquez sur arrêt
  • Votre PC ferme la session 1 (votre session utilisateur) et écrit la session 0 dans le fichier hiberfil.sys sur votre disque dur.
  • Lorsque vous démarrez votre PC, il lit le contenu de la session 0 dans le fichier hiberfil.sys et le renvoie en mémoire. Il initialise ensuite une nouvelle session pour vous.

Pour répondre à votre deuxième question, puisqu'il s'agit d'une modification du noyau, cela ne peut pas être fait sur Windows 7.

Par intérêt, vous pouvez effectuer un arrêt complet (classique) à l'aide de shutdown.exe à partir de l'invite de commandes.

shutdown /s /t 0

Si vous souhaitez effectuer un arrêt hybride, vous pouvez utiliser:

 shutdown /s /hybrid /t 0
Taylor Gibb
la source