Por que os tempos de inicialização são mais rápidos no Windows 8? [fechadas]

28

Algumas pessoas fizeram benchmarks comparando o Windows 8 ao Windows 7. Muitos recursos não melhoram, mas consistentemente, o tempo de inicialização é melhor.

Por que o Windows 8 inicia mais rápido em comparação com o Windows 7? Isso é uma questão de serviços e, consequentemente, podemos ajustar o Windows 7 para ter o mesmo tempo de inicialização?

Mikhail
fonte
11
A resposta "membro" do membro abaixo é o principal motivo, mas sim eles diminuíram bastante os serviços que carregam com o Windows a partir do W7, o que também ajuda.
Moab
11
Ainda havia menos tempo para instalar aplicativos ...; P
n611x007

Respostas:

37

No blog Building Windows 8 :

Agora, aqui está a principal diferença para o Windows 8: como no Windows 7, fechamos as sessões do usuário, mas em vez de fechar a sessão do kernel, a hibernamos. Comparado a uma hibernação completa, que inclui muitas páginas de memória em uso por aplicativos, os dados de hibernação da sessão 0 são muito menores, o que leva muito menos tempo para gravar no disco. Se você não está familiarizado com a hibernação, estamos salvando efetivamente o estado do sistema e o conteúdo da memória em um arquivo em disco (hiberfil.sys) e, em seguida, lendo-o novamente no resumo e restaurando o conteúdo novamente na memória. O uso dessa técnica com a inicialização nos oferece uma vantagem significativa nos tempos de inicialização, pois a leitura do arquivo hiber e a reinicialização dos drivers é muito mais rápida na maioria dos sistemas (30 a 70% mais rápida na maioria dos sistemas que testamos).

É mais rápido porque retomar a sessão do sistema hibernado é comparativamente menos trabalhoso do que iniciar uma inicialização completa do sistema, mas também é mais rápido porque adicionamos um novo recurso de resumo multifásico, capaz de usar todos os núcleos em um sistema multinúcleo. paralelo, para dividir o trabalho de leitura do hiberfile e descomprimir o conteúdo. Para aqueles que preferem a hibernação, isso também resulta em currículos mais rápidos da hibernação.

Provavelmente vale a pena mencionar rapidamente como tratamos o hiberfile - se você leu isso e imediatamente fez um diretório / s / ah hiberfile.sys, você teria descoberto que é um arquivo muito grande no disco. O hiberfile é dimensionado por padrão em 75% da RAM física. O arquivo é essencialmente uma reserva para os dados de hibernação que serão gravados à medida que o sistema entra na hibernação. Normalmente, muito menos espaço é realmente usado e, no caso de nosso uso rápido de inicialização, normalmente representa de 10 a 15% da RAM física, mas varia de acordo com drivers, serviços e outros fatores. O sistema também trata o hiberfile de maneira um pouco diferente dos outros arquivos no disco, por exemplo, o serviço Volume Snapshot o ignora (um pequeno benefício de desempenho. ) Você pode desativar a hibernação e recuperar esse espaço executando powercfg / hibernate em um prompt de comando elevado. Mas lembre-se de que, se você fizer isso, ele desativará completamente a hibernação, incluindo alguns recursos interessantes, como inicialização rápida e suspensão híbrida, que permitem que os sistemas de desktop façam a suspensão e a hibernação simultaneamente, portanto, se ocorrer uma perda de energia, você ainda poderá continuar do estado de hibernação. Você também pode executar powercfg / hibernate / size e especificar um valor entre 0 e 100 para a porcentagem de RAM física a ser reservada para o hiberfile - mas tenha cuidado! A especificação de um tamanho muito pequeno pode causar falha na hibernação. Em geral, recomendo deixá-lo ativado no valor padrão, a menos que você esteja trabalhando em um sistema com espaço em disco extremamente limitado. ele desativará completamente a hibernação, incluindo alguns recursos interessantes, como inicialização rápida e suspensão híbrida, o que permite que os sistemas de desktop façam uma suspensão e hibernação simultaneamente. Se ocorrer uma perda de energia, você ainda poderá retomar do estado de hibernação. Você também pode executar powercfg / hibernate / size e especificar um valor entre 0 e 100 para a porcentagem de RAM física a ser reservada para o hiberfile - mas tenha cuidado! A especificação de um tamanho muito pequeno pode causar falha na hibernação. Em geral, recomendo deixá-lo ativado no valor padrão, a menos que você esteja trabalhando em um sistema com espaço em disco extremamente limitado. ele desativará completamente a hibernação, incluindo alguns recursos interessantes, como inicialização rápida e suspensão híbrida, o que permite que os sistemas de desktop façam uma suspensão e hibernação simultaneamente. Você também pode executar powercfg / hibernate / size e especificar um valor entre 0 e 100 para a porcentagem de RAM física a ser reservada para o hiberfile - mas tenha cuidado! A especificação de um tamanho muito pequeno pode causar falha na hibernação. Em geral, recomendo deixá-lo ativado no valor padrão, a menos que você esteja trabalhando em um sistema com espaço em disco extremamente limitado. que permite que os sistemas da área de trabalho executem uma suspensão e hibernação simultaneamente. Se ocorrer uma perda de energia, você ainda poderá retomar do estado de hibernação. Você também pode executar powercfg / hibernate / size e especificar um valor entre 0 e 100 para a porcentagem de RAM física a ser reservada para o hiberfile - mas tenha cuidado! A especificação de um tamanho muito pequeno pode causar falha na hibernação. Em geral, recomendo deixá-lo ativado no valor padrão, a menos que você esteja trabalhando em um sistema com espaço em disco extremamente limitado. que permite que os sistemas da área de trabalho executem uma suspensão e hibernação simultaneamente. Se ocorrer uma perda de energia, você ainda poderá retomar do estado de hibernação. Você também pode executar powercfg / hibernate / size e especificar um valor entre 0 e 100 para a porcentagem de RAM física a ser reservada para o hiberfile - mas tenha cuidado! A especificação de um tamanho muito pequeno pode causar falha na hibernação. Em geral, recomendo deixá-lo ativado no valor padrão, a menos que você esteja trabalhando em um sistema com espaço em disco extremamente limitado.

Elmo
fonte
A hibernação do kernel não é a história toda. Eu não sei o que eles mudaram, mas mesmo sem a hibernação do kernel, minhas botas de laptop ficam visivelmente mais rápidas com o Win8 do que com o Win7 (e eu tenho um SSD e uma CPU de núcleo duplo) ... algum componente deve ter sido modificado para tornar isso acontece, mas eu não sei o que.
Mehrdad
2
Em vez de copiar e colar uma resposta, seria melhor resumir o artigo e fazer referência a ele. Citar artigos é bom, mas não em pedaços grandes.
James Mertz
2
A imagem resume isso.
Elmo
17

Resposta curta e, em minhas próprias palavras, é que seu PC possui sessões, a sessão 0 é reservada para a sessão do kernel ou console e a sessão 1 é normalmente a sessão de usuários conectados. O que eles fizeram foi usar o recurso de hibernação que temos no Windows há anos, que hiberna todas as sessões e o modificou para hibernar apenas a sessão 0 (o kernel). É assim:

  • Você clica em desligar
  • Seu PC fecha a sessão 1 (sua sessão de usuário) e grava a sessão 0 no arquivo hiberfil.sys no seu disco rígido.
  • Quando você inicializa o PC, ele lê o conteúdo da sessão 0 do arquivo hiberfil.sys e o faz voltar à memória. Em seguida, inicializa uma nova sessão para você.

Para responder à sua segunda pergunta, já que essa é uma modificação do kernel, isso não pode ser feito no Windows 7.

Por interesse, você pode fazer um desligamento completo (clássico) usando shutdown.exe no prompt de comando.

shutdown /s /t 0

Se você deseja fazer um desligamento híbrido, pode usar:

 shutdown /s /hybrid /t 0
Taylor Gibb
fonte