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

93

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

jao
fonte

Respostas:

67

Sim. De acordo com o suporte da MS, o conjunto de trabalho para um aplicativo minimizado é aparado . Você pode verificar isso sozinho 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 da ESPN.com carregada. 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 no 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
kinokijuf
fonte
7
Uau, isso é interessante e você tem um KB para fazer o backup. +1
Supercereal
57
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 irá aparar os conjuntos de trabalho residentes de todos os processos, minimizados ou não (com base em quão recentemente eles acessaram as páginas de memória). E se a memória não for necessária por qualquer motivo, seria tolice apará-la - por que reduzir gratuitamente o desempenho de um aplicativo quando a memória é abundante?
David Schwartz
6
Uau, para que as pessoas não gostem de uma resposta ... Alguém tem alguma prova do contrário? Do jeito que eu vejo Kinokijuf realmente tem alguma prova, vocês dizem que não se aplica ao Windows 7 e Vista, mas não oferecem fonte ... Vocês nem testam: \ conjunto de trabalho e memória alocada são duas coisas diferentes . O Process Explorer é a única maneira de testar isso.
Supercereal
5
Parece digno de nota que a redução no uso de recursos do sistema é trivial: no exemplo dado, ao minimizar o aplicativo, o conjunto de trabalho é reduzido apenas em cerca de 1,2%.
precisa saber é o seguinte
5
Observe a falta de desenvolvedores do Win32 neste tópico de comentários. Há vários eventos do Win32 que ignoram aplicativos minimizados. Mesmo se não houver uma economia perceptível na memória, com certeza haverá uma economia no uso da CPU.
surfasb
27

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 ou na CPU principal do sistema.

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 limite de quanto poderia ser usado em um determinado 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.

Tim Brigham
fonte
Eu realmente odeio respostas de votação, mas isso está errado ... Se você me perguntasse há 10 minutos, eu pensaria que você estava certo.
Supercereal
3
@ Alivie a linha ofensiva, pelo menos para mim, e por que o voto negativo permanece: "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". A pergunta afirma explicitamente: "eles usam menos memória e CPU do que deixá-los maximizados"? Qual é a resposta, pelo menos pela MS (e confiarei na MS aqui desde que a escreveram)? Sim, ela usa menos recursos. Ele não pergunta nada sobre o desempenho do aplicativo enquanto minimizado, apenas se ele usar menos recursos.
Supercereal
14
@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 sobre a resposta de kinokijuf, verá por que foi uma má idéia em primeiro lugar - exceto em sistemas operacionais que não conseguem rastrear o uso recente da página.)
David Schwartz
1
As notas de rodapé afirmam que são compatíveis com NT4, 2000 e XP. Duvido que algo tenha mudado desde então.
Kinokijuf 6/12/11
4
E posso confirmar na minha máquina Vista (com o Process Explorer) que o conjunto de trabalho ainda cai.
kinokijuf
12

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

Se um programa precisar de um pedaço de memória, ele sempre precisará dele. Se não, então não. Minimizar o programa não faz com que o programa "não exija" a memória. "Recortar" o conjunto de trabalho está simplesmente paginando a memória da memória física para o disco ou simplesmente removendo a página, se estiver disponível em outra parte do disco. (No último caso, o sistema operacional faz isso de qualquer maneira, se houver falta de memória; portanto, é apenas um problema de cache, não um problema de 'uso'.) Em ambos os casos, não reduz o que o programa usa; apenas realoca os dados em outro lugar.

Dito isto, com relação ao uso da CPU: existe algo chamado aumento de prioridade dado pelo sistema operacional em determinadas condições, o que pode realmente fazer com que um aplicativo em primeiro plano use mais CPU. Veja aqui para detalhes.

Mehrdad
fonte
4

Realmente depende do aplicativo que você está falando e da maneira como o aplicativo é codificado; no entanto, para fins de comparação, digamos que o programa seja 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.

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

Todas as mudanças de que estamos falando aqui provavelmente serão desprezíveis, a menos que você esteja em uma máquina com especificações muito baixas.

iTom
fonte
-1, para irrelevâncias. Para todas as comparações, você sempre teve que assumir Ceteris paribus
Lie Ryan
2
Não percebeu que assumir uma coisa ruim quando esclarecido e cobrindo as duas possibilidades.
Itom
certas suposições são irrelevantes, portanto inúteis, mesmo que sejam esclarecidas. Se o programa for escrito de tal forma que a minimização o encerre, obviamente isso faria o computador usar muito menos recursos; essa suposição é totalmente inútil para a discussão.
Lie Ryan
1

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

Para aplicativos intensivos em gráficos (por exemplo, World of Warcraft ou Call of Duty 3), haveria uma diminuição significativa no uso da GPU (Unidade de processamento gráfico).

wizlog
fonte
Um programa interativo não precisa "reconhecer quando é minimizado" para usar menos CPU devido ao fato de simplesmente não ter nenhuma mensagem na janela do teclado / mouse para responder.
usar o seguinte código
@ Random832 Não sei bem o que você quer dizer, mas pretendia transmitir o tipo de programa (como um jogo) que pausa quando perde o foco. Esses jogos geralmente usam menos energia da CPU quando minimizados.
Wizlog 6/12
0

Embora não esteja disponível no Windows 7 de acordo com o meu conhecimento, no Windows 8, os programas minimizados são suspensos.

soandos
fonte
Isso também é para programas clássicos? Sua necessária para metro desde que você não pode realmente perto software
Journeyman Geek
Sim, pelo menos é o que eu vi na versão beta. (exemplo utilizado foi o Internet Explorer, a versão não-metro)
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 de metrô não pode desaparecer, então eu ficaria relativamente confiante no restante do sistema de suspensão. Também faz parte do sistema win7 atual, embora não seja automático.
soandos