Questão Um computador usa menos recursos quando os programas são minimizados?


Quando os programas são minimizados no Windows 7, eles usam menos memória e CPU do que deixá-los maximizados?


93


origem




Respostas:


Sim. De acordo com o suporte da MS, o conjunto de trabalho para uma aplicação minimizada é aparado. Você pode verificar isso com o Process Explorer.

Aqui está um teste de uma única instância do Firefox 5.0 no Windows 7 x64 com uma única guia do site ESPN.com carregado. Os valores foram lidos usando o Gerenciador de Tarefas.

type                 not minimised  minimised     diff
------------------------------------------------------
working set               165,752k   163,768k  -1,984k
peak working set          169,624k   169,624k      N/A
mem (private working set) 121,600k   119,576k  -2,024k
commit size               135,576k   133,504k     -72k
paged pool                    396k       397k      +1k
np pool                        82k        81k      -1k
handles                        504        483      -21
threads                         34         31       -3
user objects                    40         44       +4
GDI objects                     71         75       +4

Aqui está um teste de uma única instância do Paint.NET no Windows 7 x64 com algumas pequenas imagens abertas. Este aplicativo foi escrito em Microsoft .NET ao contrário do Firefox, que é quase certamente C / C + +.

type                 not minimised  minimised     diff
------------------------------------------------------
working set               125,904k   125,256k    -684k
peak working set          217,836k   217,836k      N/A
mem (private working set)  61,844k    61,844k       0k
commit size               102,388k   102,384k      -4k
paged pool                    542k       541k      -1k
np pool                        59k        59k       0k
handles                        741        741        0
threads                         19         19        0
user objects                   276        273       -3
GDI objects                    489        491       +2

65



Uau, isso é interessante e você tem um KB para fazer o backup. +1 - Not Kyle stop stalking me
Isso não se aplica às versões modernas do Windows (7, Vista). Em um sistema operacional moderno, se a memória for necessária para alguma coisa, o sistema operacional cortará os conjuntos de todos processos, minimizados ou não (com base em como recentemente acessaram as páginas de memória). E se a memória não for necessária por qualquer motivo, seria tolice cortá-la - por que descartar gratuitamente o desempenho de um aplicativo quando a memória é abundante? - David Schwartz
Uau, as pessoas não gostam de uma resposta ... Alguém tem alguma prova do contrário? A maneira que eu vejo isso Kinokijuf realmente tem alguma prova, vocês dizem que não se aplica ao windows 7 e vista, mas não oferecem nenhuma fonte ... Vocês nem mesmo testam: \ conjunto de trabalho e memória alocada são duas coisas diferentes . O Process Explorer é a única maneira de testar isso. - Not Kyle stop stalking me
Vale a pena notar que a redução no uso de recursos do sistema é trivial: no exemplo dado, minimizando a aplicação, o conjunto de trabalho é reduzido apenas em cerca de 1,2%. - bgvaughan
Observe a falta de desenvolvedores do Win32 neste thread de comentários. Há vários eventos do Win32 que pulam os aplicativos minimizados. Mesmo se não houver uma economia de memória notável, há uma economia de uso da CPU. - surfasb


Sim e não. Eles usarão menos recursos em sua GPU - menos necessidade de atualizações de tela -, mas não na memória principal do sistema ou na CPU.

O tamanho do conjunto de trabalho mostrado no gerenciador de tarefas é não a quantidade real de memória consumida por um aplicativo. É mais um teto de quanto poderia usar em um dado momento.

Se outro aplicativo solicitar memória alocada para o conjunto de trabalho de um processo que não esteja em uso ativo, esse número poderá ser reduzido sem alterar a quantidade de memória que o aplicativo está realmente usando.


27



Eu realmente odeio votar nas respostas, mas isso é errado ... Se você me perguntasse 10 minutos atrás, eu teria pensado que você estava certo. - Not Kyle stop stalking me
@Lieven a linha de ofensa, pelo menos para mim, e porque o downvote está: "Eles vão usar menos recursos em sua GPU - menos necessidade de atualizações de tela - mas não na memória do sistema principal ou CPU." A questão afirma explicitamente: "eles usam menos memória e CPU do que deixá-los maximizados", que a resposta é, pelo menos, MS (E eu vou confiar MS aqui desde que eles escreveram), sim, ele usa menos recursos. Ele não pergunta nada sobre a performance do aplicativo enquanto está minimizado, apenas se ele usar menos recursos. - Not Kyle stop stalking me
@Kyle Esse artigo da KB tem 5 anos. Não se aplica a esquemas modernos de gerenciamento de memória. (E se você vir meu comentário para a resposta do kinokijuf, você verá por que foi uma má idéia, exceto em sistemas operacionais que não podem rastrear o uso recente da página.) - David Schwartz
As notas de rodapé afirmam que ele faz maçãs para NT4, 2000 e XP. Eu duvido que algo tenha mudado desde então. - kinokijuf
E eu posso confirmar na minha máquina Vista (com o Process Explorer) que o conjunto de trabalho ainda cai. - kinokijuf


"Conjunto de trabalho" NÃO é o mesmo que "Uso de memória"

Se um programa precisar de um pedaço de memória, ele sempre precisará dele. Se isso não acontecer, então não. Minimizar o programa não subitamente faz com que o programa "não exija" a memória. "Aparar" o conjunto de trabalho é simplesmente paginação a memória de memória física no discoou simplesmente removendo a página se ela estiver disponível em outro lugar no disco. (Neste último caso, o SO faz isso de qualquer forma se houver falta de memória, será apenas um problema de cache, não um problema de 'uso'.) Em ambos os casos, não não reduzir o que o programa usa; meramente realoca os dados em outro lugar.

Dito isto, em relação ao uso da CPU: existe algo chamado aumento de prioridade dado pelo SO em certas condições, o que pode de fato fazer com que um aplicativo de primeiro plano use mais CPU. Vejo Aqui para detalhes.


12





Isso realmente depende do aplicativo sobre o qual você está falando e da maneira como o aplicativo é codificado; no entanto, para fins de comparação, digamos que o programa é codificado de forma a executar as mesmas funções quando maximizado e minimizado.

Portanto, esperamos que o programa use a mesma quantidade de CPU quando minimizado se as mesmas funções subjacentes estiverem sendo chamadas pelo aplicativo.

No entanto, os processos do sistema certamente usarão menos CPU quando os programas forem minimizados, pois haverá menos gráficos a serem renderizados para a visualização do aplicativo, provavelmente agora apenas um ícone da bandeja do sistema.

Isto é, a menos que, ao minimizar o aplicativo, você faça com que um aplicativo mais gráfico seja visualizado e, portanto, renderizado, agora a carga da CPU pode aumentar devido à carga de trabalho de gráficos extra.

Em suma, as mudanças que estamos falando aqui provavelmente serão insignificantes a menos que você esteja em uma máquina com especificações muito baixas.


4



-1, para irrelevâncias. Para quaisquer comparações você sempre teve que assumir Ceteris paribus - Lie Ryan
Não percebi que assumir era algo ruim quando esclarecido e abrangendo ambas as possibilidades. - iTom
certas suposições são irrelevantes, portanto inúteis, mesmo que sejam claras. Se o programa é escrito de tal maneira que a minimização terminaria o programa, isso obviamente faria com que o computador usasse muito menos recursos; essa suposição é totalmente inútil para a discussão. - Lie Ryan


Raramente. Para um programa interativo que reconhece quando é minimizado, sim, ele usará menos energia da CPU. Para programas como o Microsoft Word, não haverá diminuição no uso da CPU.

Para aplicações intensivas em gráficos (ex. World of Warcraft ou Call of Duty 3), haveria uma diminuição significativa no uso da GPU (Graphics Processing Unit).


1



Um programa interativo não precisa "reconhecer quando é minimizado" estar usando menos CPU devido a simplesmente não ter nenhuma mensagem de janela de teclado / mouse para responder. - Random832
@ Random832 Eu não tenho certeza do que você quer dizer com tudo, no entanto, eu quis dizer o tipo de programa (como um jogo) que faz uma pausa quando perde o foco. Esses jogos geralmente usam menos energia da CPU quando minimizados. - wizlog


Eu diria que ele usa menos recursos porque não atualiza sua janela.

http://msdn.microsoft.com/en-us/library/dd145193(v=VS.85).aspx


1





Embora não esteja disponível no Windows 7, pelo que eu saiba, no Windows 8, os programas que são minimizados são suspensos.


0



É para programas clássicos também? É necessário para o metrô, já que você não pode fechar o software - Journeyman Geek♦
Sim, pelo menos é o que eu vi no beta. (exemplo usado foi o Internet Explorer, a versão não-metropolitana) - soandos
É melhor esperar até que o Win8 seja lançado, em vez de especular sobre o que pode ou não levar adiante dos betas muito antigos. - Jeff Atwood
Bem, a parte da suspensão para os aplicativos do metrô não pode ir embora, então eu ficaria relativamente confiante no restante do sistema de suspensão que fica no lugar. Também faz parte do atual sistema win7, embora não seja automático. - soandos