Posso “hibernar” um programa?

16

Sim, sei que o modo de hibernação geralmente se aplica a um computador. (Hibernando ela significando salvar a memória do programa no disco e poder restaurá-la de uma maneira consistente.)

No entanto, a hibernação de um programa pode ser muito útil. Suponha que eu queira jogar um jogo, mas alguns programas como firefox, acrobat ocupam 500M de memória, então eu quero liberar tudo. O fechamento e a inicialização podem consumir muito tempo, especialmente se os dados da sessão não puderem ser armazenados. Então, ao invés disso eu vou e hibernando eles. Então, existe alguma maneira de eu hibernar um programa?

    
por apoorv020 25.04.2011 / 07:29

4 respostas

7

Há uma pergunta relacionada sobre isso no StackOverflow. É mais relacionado à programação, mas a principal resposta aceita explica porque o que você está tentando fazer é difícil e oferece uma alternativa viável.

Basicamente, execute seus aplicativos de "negócios" em uma VM e pause / hiberne / feche quando quiser jogar.

    
por 25.04.2011 / 18:08
3

Enquanto isso não é um hibernate real , o processo pode ser suspenso. Ele irá parar imediatamente de usar os ciclos da CPU, mas ainda estará usando memória. Felizmente, essa memória será trocada para o arquivo de paginação, se você iniciar qualquer aplicativo com uso intensivo de memória, então não é um problema real. O processo suspenso não pode sobreviver ao reboot \ logoff, mas isso será suficiente para jogar um jogo.

Pergunta relacionada: Suspender / Retomar um processo da maneira mais fácil?

Internamente, processo de suspensão pode ser feito através de diferentes abordagens :

  • SuspendThread e par de funções ResumeThread .

  • NtSuspendProcess function (não documentada oficialmente) que foi introduzida no Windows XP Sp0 e funciona em todas as versões de sistema desde então.

  • Interface de depuração fornecida pela Microsoft, usando DebugActiveProcess e DebugActiveProcessStop funções. Quando um depurador se anexa a um processo remoto, todos os threads do alvo são suspensos imediatamente até que o depurador forneça um sinal para permitir sua execução.

Há várias ferramentas disponíveis que podem suspender um processo:

Além disso, o Monitor de Recursos ( Gerenciador de Tarefas Desempenho Monitor de Recursos Aberto ) no Windows Vista e superior pode suspender \ retomar processos:

    
por 04.03.2015 / 04:48
0

"Hibernando" um aplicativo não seria mais rápido do que apenas fechar e reiniciá-lo, embora seu ponto sobre os dados da sessão seja válido. Em geral, não haveria muito, se alguma vantagem.

    
por 26.04.2011 / 15:14
-2

Como você está no Windows, você sempre pode criar duas contas de usuário e usar a função de alternar conta rápida no Windows e usar cada uma delas para diferentes conjuntos de aplicativos. Como o Windows praticamente hiberna as outras seções abertas no computador. Eu acho que sim.

    
por 04.03.2015 / 03:13