Por que os computadores demoram a voltar do modo de hibernação?

20

A hibernação deve gravar o conteúdo da RAM no disco, e voltar da hibernação deve preencher a RAM com o conteúdo salvo. Por que o retorno da hibernação é lento? sistema é muito irresponsivo em geral por algum tempo?

    
por enthrops 10.06.2013 / 02:24

4 respostas

18

A causa principal é a E / S do disco. Ler e gravar em um disco físico é muito mais lento que na RAM. Quando o computador sair do disco (hibernação), ele também terá que ligar os componentes, o que pode causar lentidão. Isso é altamente dependente do computador. Um SSD terá quase a mesma velocidade de retomada do disco que da RAM. Alguns computadores permitem que você mova o mouse antes que o RAM seja completamente preenchido novamente, causando tempos de resposta baixos.

Nota: Suponha que você tenha 8 GB de RAM e um SSD com taxa de transferência de 400 MB / s. Ainda vai demorar 8 * 1024MB / 400MB / s = 20,48s. Esta não é a mesma velocidade que o currículo da RAM.

Supondo uma taxa de transferência de RAM de 15.000MB / s, o tempo de reinicialização é de 0,55 segundos.

    
por 10.06.2013 / 02:38
3

Embora a RAM seja muito rápida, o disco rígido é exatamente o oposto. Imagine que você tenha que copiar o conteúdo da RAM, que pode ser de cerca de 16 GB, do disco rígido. Isso é 4 DVDs. Vêem?

    
por 10.06.2013 / 02:45
3

É uma troca. Nós puxamos tudo que estava na RAM antes da hibernação de volta do disco para a RAM de uma só vez, ou apenas um pouco de cada vez, conforme necessário?

Todos sabemos que a leitura de um setor a partir de um disco de giro leva praticamente o mesmo tempo que a gravação desse setor no mesmo disco giratório - o tempo de busca + rotação. Portanto, poderíamos esperar que a gravação de informações da RAM para o disco (na hibernação) levaria aproximadamente o mesmo tempo que a leitura da mesma RAM do disco (continuação da hibernação). Mas isso não acontece assim, por causa da paginação por demanda.

Se o sistema operacional capturasse tudo de uma vez, o reinício do hibernate levaria dezenas de segundos, mas depois disso agiria da mesma forma como se você nunca tivesse hibernado.

Os programadores de sistema operacional normalmente escolhem exigir paginação . Em outras palavras, o sistema operacional puxa apenas um pouco de cada vez do disco, conforme necessário. Isso tem a vantagem de que a continuação do hibernate leva muito menos tempo antes de começar a responder ao teclado e a mouseclicks. Por outro lado, quando você usa algo pela primeira vez depois da hibernação, há um atraso pequeno, mas perceptível, quando o sistema operacional finalmente consegue carregá-lo. Isso acontece mesmo quando "a primeira vez" você usa algo pode ser vários minutos após o hibernar. Então, depois de retomar a partir de uma hibernação (ou seja, depois de ver uma tela que aparece para ser mais ou menos idêntica à tela antes do hibernate), trabalhar com a máquina pode parecer lento por um tempo .

Como Synetech apontou, há um pouco de psicologia humana também envolvida: Como a tela desliga imediatamente no início da hibernação, parece que ela desliga rapidamente. E o usuário pode imediatamente continuar com o que mais você queria fazer. Mas depois de um retorno da hibernação, o usuário está tentando fazer alguma coisa, e os pequenos atrasos são irritantes porque atrapalham o que o usuário está tentando fazer.

    
por 10.06.2013 / 20:40
2

Eu sei o que você quer dizer. Na verdade, parece que o LED do HDD pisca por um longo tempo depois de sair da hibernação.

Algumas explicações razoáveis foram dadas sobre atrasos devido ao arranque de hardware (e aceleração do driver?) e fragmentação (você notará que um sistema recém-saído da fábrica geralmente hibernará e retomará rapidamente enquanto um que tenha sido usado para algum tempo será muito mais lento para fazê-lo). Há mais algumas explicações para esse comportamento.

Quando você hiberna, o Windows libera a RAM para a unidade. Apesar das altas velocidades de leitura de RAM e gravação em disco (mesmo com um arquivo de hibernação desfragmentado em uma unidade grande e vazia), ainda leva um bom tempo para gravar vários gigabytes (você notará que hibernando e retomando um sistema com pequenas quantidades de RAM) está bem rápido). A tela se apaga rapidamente, mas a unidade (e a placa-mãe, os ventiladores, etc.) permanecem em funcionamento por um tempo até que a descarga da RAM no disco seja concluída. (Certifique-se de não jogar um laptop com um HDD por perto até que ele tenha terminado e completamente desligue a unidade).

Você pode fazer alguns testes experimentais para medir o tempo que leva de clicar em Hibernar até que o sistema seja desligado, e o tempo que leva do momento em que você vê o Retomar o Windows tela até que o LED do HDD pare de piscar. Eles provavelmente serão aproximadamente iguais. (O Windows tenta fazer com que pareça que ele sai da hibernação muito rápido escrevendo e depois lendo o kernel e outras coisas no arquivo de hibernação primeiro, para que ele possa voltar a funcionar imediatamente e depois continuar a carregar o restante no segundo plano e conforme necessário até que tudo tenha sido retomado - você pode ver esse comportamento em ação porque a tela de login é mostrada muito rapidamente.)

Por que, então, parece que retomar leva mais tempo. Há duas explicações para isso.

  1. É psicológico . Como Dan apontou, porque a tela desliga imediatamente quando você hiberna, parece que desliga rapidamente, enquanto você vê todo o processo de retomada (tela de abertura e LED do HDD piscando).

  2. É paginação. Como a maioria das pessoas usa o modo de hibernação em vez de desligar porque deseja evitar a saída de programas e de modo que eles possam continuar de onde parou, significa que quando o Windows for retomado , há um monte de programas já em execução e já consumindo memória. Como uma quantidade significativa de tempo passou desde a última vez que o gerenciador de memória do Windows foi verificado no sistema, ele provavelmente acabará fazendo um monte de troca de memória, já que de sua perspectiva, alguns programas ficaram inativos por um tempo e outros tornar-se ativo. Essa troca de curso leva um tempo e espira a unidade por algum tempo.

O resultado final é provavelmente uma combinação de fatores e interações entre ativação de hardware, paginação, psicologia e fragmentação.

Se você está à altura, você pode definitivamente descobrir (pelo menos no seu sistema) qual é o gargalo através da realização de alguns testes simples, como o uso de Process Monitor para observar a atividade da unidade / arquivo enquanto o Windows hiberna e continua para ver se toda essa debulha deve-se ao acesso a hiberfil.sys ou pagefile.sys .

    
por 10.06.2013 / 19:23

Tags