Consumo de Memória RAM A FUNDO

Este artigo está publicado em https://baboo.pro/ram
Versão em PDF em https://baboo.pro/ram.pdf

O artigo abaixo foi atualizado em Nov/2019 com informações adicionais a atualizadas deste vídeo publicado em 2017:

 
Nesse artigo eu abordo o Consumo de Memória RAM A FUNDO, detalhando como o Windows trabalha com a memória RAM.

Este artigo ajuda os internautas a compreenderem sobre performance e otimização no Windows, já que infelizmente a atual geração de internautas aprendeu isso com jornalistas e youtubers que não dominam esse assunto e publicam artigos e vídeos com e conceitos errados.

No meu artigo sobre a edição LTSC eu notei que muitos gamers defendem mitos e crenças incorretas que certamente foram ensinados por gamer e youtubers que entendem muito pouco sobre o gerenciamento de CPU e memória RAM. Como esse nicho de mercado PRECISA ter um PC com o máximo de performance possível, eles recorrem a dicas e conselhos de pessoas que entendem sobre hardware, mas que infelizmente não entendem tanto de Windows como entendem de hardware, com o agravante do hardware depender diretamente do Windows e de seus componentes para funcionar corretamente.

O resultado disso é que a internet está cheia de “dicas” e “soluções” equivocadas para otimização de jogos e do Windows em si, da mesma maneira que acontece com os “guias de otimização de SSD” que eu abordei nos 3 artigos sobre otimização de SSD, aonde praticamente todas dicas existentes na web são inúteis.

Nesse vídeo sobre Consumo de memória RAM A FUNDO eu destruo a conhecida crença que “quanto mais memória RAM livre, melhor”.

Melhorias no gerenciamento de memória RAM

Conforme a Microsoft lança novas versões do Windows, entre as novidades do novo sistema operacional estão diversos aprimoramentos que ficam “invisíveis” aos usuários, e um deles é justamente o gerenciamento da memória RAM.

Em 2009 o Windows 7 trouxe melhorias no PFN (Page Frame Number), permitindo que algumas tarefas em memória fossem realizadas até 15x mais rápido, além de otimizar a memória RAM para uso em processadores que começaram a ser lançados cada vez com mais cores. Antes dele o Windows Vista introduziu o ReadyBoost, que é um cache complementar à memória RAM e que otimiza bastante o carregamento de programas.

Em 2012 o Windows 8 trouxe três importantes funcionalidades relacionadas ao gerenciamento de memória RAM:

1. A suspensão automática de Aplicações Modernas quando elas estão em segundo plano, fazendo com que elas ocupem 0% de CPU

2. A combinação de memória, que analisa se havia conteúdo duplicado na memória RAM – e se houvesse, ele mantinha uma única cópia e apagava as demais cópias, liberando o espaço destas para outro uso

3. A priorização de memória, em que o Windows define se o conteúdo da memória sendo usada é prioritário ou não, permitindo descartar os arquivos com baixa prioridade para que arquivos de maior prioridade tenham mais espaço na RAM.

Exemplo dessa última funcionalidade de priorização de memória: quando um antivírus analisa um programa, ele aloca um espaço da memória RAM para fazer isso, mas assim que ele finaliza a análise desse programa, aquele espaço pode ser utilizado por outro programa, pois ele não é mais utilizado. Sabendo disso, quando o antivírus aloca inicialmente esse espaço, ele informa o Windows que esse espaço é de Baixa Prioridade.

Consumo de Memória RAM A FUNDO | Priorização de memória

Isso não acontece quando você abre o Photoshop, em que o espaço de memória utilizado por ele é utilizado por vários módulos do programa que precisam ficar ali enquanto o usuário estiver utilizando o próprio programa - então esse espaço é alocado como Alta Prioridade.

Se o Photoshop precisar de mais espaço na memória RAM, o Windows 8 libera áreas de Baixa Prioridade para isso, mantendo na memória RAM apenas os módulos mais usados das aplicações importantes, evitando que elas fossem salvas no arquivo de paginação do disco rígido (cujo acesso é muito mais lento do que a memória RAM).

Consumo de memória no Windows 10

Em 2015 com o Windows 10 não foi diferente: esse sistema operacional veio com a compressão automática de arquivos na memória RAM, permitindo o uso muito mais eficaz da memória RAM ao mesmo tempo que diminui em até 50% a necessidade de salvar dados de cache no disco rígido.

Além disso, a compressão, descompressão de dados e leitura de dados é muito rápida pois essas tarefas são realizadas via processamento paralelo e a perda de performance é imperceptível, ou seja, não há diminuição de performance por causa disso.

Compressão de memória RAM no Windows 10

engrenagem-baboopro.png Ela é executada em Baixa Prioridade para não afetar o desempenho do computador e aplicações em uso. Além disso, Aplicações Modernas têm uma área reservada na memória RAM especificamente para armazenar seus arquivos de cache, separados dos arquivos de cache das aplicações x86 e x64.

engrenagem-baboopro.png A taxa de compressão dos arquivos varia entre 30 e 40% e em alguns cenários

engrenagem-baboopro.png A compressão é bastante rápida e varia de acordo com a velocidade da memória RAM. Em computadores mais antigos a velocidade é em média de 400 MB/s por core, e computadores recentes com processadores limitados (como o Atom) compactam arquivos a 600 MB/s por core.

engrenagem-baboopro.png A descompressão é muito mais rápida: cerca de 1 GB/s por core, ou seja, em um processador com 8 cores ela atinge quase 8 GB/s. Como essa funcionalidade também está presente na versão mobile, em um smartphone de baixo custo ela atinge 250 MB/s.

A melhoria no consumo de memória RAM no Windows 10 permite que ele funcione muito melhor em computadores com pouca memória RAM em comparação com versões antigas do Windows, além de evitar a diminuição do tempo de vida útil do disco rígido ou SSD por eles serem menos utilizados - e não é à toa que existem tablets com apenas 1 GB de memória RAM rodando Windows 10 que funcionam de modo satisfatório.

Isso também acontece pela melhoria dos algoritmos de gerenciamento de memória que o Windows 10 implementou.

Como você pode ver, o uso da memória RAM é algo muito mais complexo, detalhado e principalmente dinâmico do que as pessoas imaginam.

Infelizmente a imensa maioria das pessoas acha que a memória RAM é um espaço livre aonde o arquivo copiado para lá se comporta como um imenso bloco de concreto inerte, que só ocupa espaço à toa, que nunca sai dali, que deixa o Windows mais lento, e por isso eles acham que “quanto mais memória RAM livre, melhor”. Nada mais errado do que isso!

Consumo de Memória RAM A FUNDO | Bloco de concreto inerte

A evolução no gerenciamento de memória RAM e a implementação de melhorias que eu expliquei agora há pouco, fazem com que o Windows ajuste a memória RAM para obter o máximo de desempenho sem que o internauta perceba ou precise fazer alguma coisa.

O que deixa o Windows mais rápido não é a “economia a todo custo de memória RAM”, mas sim o uso INTELIGENTE da memória RAM. Quem relaciona a quantidade de memória RAM utilizada com a performance do Windows, ou de aplicativos ou jogos, está errando ao fazer isso.

Exemplo: computador com 4 GB RAM

Computador A x Computador B

Exemplo simples: imagine dois computadores com a mesmíssima configuração de hardware e software, aonde ambos têm 4 GB de memória RAM instalada.

Quando o computador A está sendo utilizado, ele gasta 1 GB de memória RAM, e quando o o computador B está sendo utilizado, ele gasta 50% a mais: 1,5 GB de memória RAM.

Com isso, o computador A tem 3 GB de memória livre, enquanto o computador B tem 500 MB a menos: 2,5 GB:

Consumo de Memória RAM A FUNDO | Computador A x Computador B

Qual dos dois é o mais rápido?

Se você acredita que é o computador A, por ter mais memória livre, você está enganado. Se você acredita que é o computador B que tem 500 MB a menos, você também está enganado. Por que? Pois não fazemos ideia do que são esses 500 MB adicionais, então não dá para concluir absolutamente nada sobre a diferença de performance no Windows.

Para sabermos qual dos dois é mais rápido, precisamos analisar o conteúdo da memória RAM para saber se esses 500 MB influenciam ou não na performance.

E de uma maneira bastante simplificada, imagine que o computador A tem 700 MB de sistema operacional, drivers e serviços mais três aplicativos abertos (cada um com 100 MB), e mais nada. Enquanto isso, o computador B tem os mesmos 700 MB de sistema operacional, drivers e serviços, os mesmos três aplicativos abertos (também com 100 MB cada), e mais dez arquivos de cache desses programas e do Windows, totalizando 500 MB.

Quando o computador A for utilizado, ele precisa acessar constantemente o disco rígido ou SSD para ler e salvar os arquivos de cache, pois esses dez arquivos de cache não estão na memória RAM: eles estão no disco rígido ou SSD.

Por outro lado, quando o computador B for utilizado, esses arquivos serão lidos e salvos muito mais rápido pois eles já estão na memória RAM, com a vantagem do disco rígido e SSD nem serem acessados.

Consumo de Memória RAM A FUNDO | Quanto mais uso, melhor

Então qual é o computador mais rápido? A ou B?

O que define qual dos computadores é mais rápido é o fato do disco rígido ser em média 100x mais lento do que a memória RAM e um SSD ser em média 20x mais lento que a memória RAM.

Com isso, o computador A levará muito mais tempo acessando esses dados do que o computador B, e o fato dele ter mais espaço livre de memória RAM não muda isso em nada: se ele tiver 8 GB ou 256 GB de memória RAM adicional, isso é irrelevante por não impedir EM NADA a lentidão existente no acesso aos dados do disco rígido e SSD.

A conclusão é óbvia: mesmo que o computador A tenha 500 MB a mais de memória RAM livre para uso do que o computador B, o trabalho nele certamente será mais lento, pois ele não aproveita a vantagem de utilizar a rapidíssima memória RAM que está sobrando ali para acessar os dados que ele precisa.

Ao invés disso, ele depende do acesso constante ao disco rígido e SSD, que são muito mais lentos que a memória RAM:

Consumo de Memória RAM A FUNDO | Uso do cache

Conclusão: de que adianta seu computador ter muita memória RAM se ele não se beneficiar disso para deixar o seu PC mais rápido?

É por isso que o fato de existir mais memória RAM livre não significa que o Windows vai trabalhar mais rápido ali. Como eu disse antes, o que importa não é a economia a todo custo de memória RAM, mas sim o uso INTELIGENTE da memória RAM.

Muitos gamers ostentam que o Windows que ele utiliza “consome menos CPU e RAM” do que qualquer outra versão, como se isso fosse algo vantajoso. Na prática isso apenas mostra que eles não compreendem o gerenciamento de memória RAM do Windows por se gabarem disso.

Consumo de memória RAM em servidores

Cenário apocalíptico em servidores

A prova final de que o algo uso da memória RAM é benéfico acontece em um cenário aonde o uso da memória RAM é CRUCIAL para o desempenho do computador: em servidores.

Enquanto um bom computador de gamer tem um único processador com alguns cores, 16GB de memória RAM, é utilizado por uma única pessoa (o próprio gamer) e o "trabalho pesado" no jogo na prática é realizado pela GPU (a placa de vídeo) e não pela CPU, na prática esse computador é um PC da Xuxa se comparado com servidores que têm por aí.

pc-da-xuxa-baboopro.jpg

Estes servidores têm vários processadores com dezenas de cores, algumas centenas de GB ou alguns TB de memória RAM, centenas ou milhares de usuários trabalhando simultaneamente nele, e sem NENHUMA ajuda da GPU: TUDO realizado ali depende EXCLUSIVAMENTE da CPU, da memória RAM, e dos dispositivos de armazenamento, que são os HD e SSD.

Consumo de Memória RAM A FUNDO | Servidores x PC da Xuxa

E é precisamente nesse "cenário apocalíptico" que o gerenciamento de CPU e memória RAM do Windows é testado no limite - e não é à toa que saem daí algumas melhorias para as versões desktop do Windows, como o Windows 10, da mesma maneira que algumas tecnologias dos carros de Fórmula 1 acabam sendo utilizados nos carros de passeio.

E você realmente acha que os administradores de TI, que normalmente são profissionais com conhecimento técnico mais profundo sobre Windows, se preocupam em "economizar memória RAM" nessa situação calamitosa? É claro que não, pois eles sabem que o Windows ajusta e adapta constantemente o uso da memória RAM para otimizar ao máximo o trabalho ali realizado, sem que ele tenha que se preocupar com isso.

Nesse ambiente de uso EXTREMO do hardware e software, é muito comum que a CPU atinja constantemente 90% e se mantenha ali, e a quantidade de memória RAM utilizada varia a todo instante. Isso acontece pois o Windows está aproveitando AO MÁXIMO o hardware disponível.

Consumo de Memória RAM A FUNDO | Servidores

Se esse servidor utilizar somente 5% da CPU e boa parte da memória RAM estiver livre, tenha certeza que o administrador vai sair correndo para descobrir qual é o problema, pois isso não é normal.

Uso inteligente da memória RAM + 3 dicas

A conclusão é que não adianta você ter um hardware superpotente e desejar que o Windows utilize pouca CPU e memória RAM, pois é aproveitando eles AO MÁXIMO que você aproveita todo potencial do computador - da mesma maneira que ninguém compra um carro esportivo para andar somente em primeira e segunda marcha pois ele está preocupado com o número de rotações do motor!
 
No uso normal do dia-a-dia os dois arquivos de cache que permanecem mais tempo na memória RAM normalmente são relacionados ao antivírus e ao Windows.edb, que é o arquivos gerado pela Indexação do Windows. Conforme você vai utilizando o PC, aparecem centenas de arquivos, drivers e módulos ali, que são eliminados pouco tempo depois, e é por isso que depois de algum tempo de inatividade do computador, o consumo de memória RAM cai.

 
Outro detalhe interessante é que as mesmas pessoas que defendem que “quanto mais memória RAM livre, melhor” também alegam que a Cortana e Aplicações Modernas gastam muita CPU e RAM e por isso querem ter um Windows sem eles - e obviamente eles estão errados.

Você se lembra a primeira funcionalidade que eu listei no Windows 8 acima? Claro que não, mas foi “A suspensão automática de Aplicações Modernas quando elas estão em segundo plano, fazendo com que elas ocupem 0% de CPU” – e é claro que isso também está no Windows 10. Se você abrir o Gerenciador de Tarefas, verá que a Cortana (que é o SearchUI.exe) está com status Suspenso:

Consumo de Memória RAM A FUNDO | Cortana

Isso acontece pois o Windows 10 percebeu que a Cortana não está sendo utilizada - então ela foi "desligada" e por isso ela não consume nenhuma CPU (0% conforme mostrado acima), e utiliza um consumo de memória RAM é irrisório. A conclusão é que alegar que a Cortana gasta muita CPU e RAM evidentemente não condiz com a realidade.

Na próxima página eu dou três dicas sobre CPU e consumo de memória RAM no Windows:

Três dicas sobre consumo de memória RAM

1. A versão Fall Creators do Windows 10 lançada em outubro de 2017 trouxe algumas novidades interessantes.

Entre elas está uma nova funcionalidade chamada Power Throttling, que automaticamente coloca em estado máximo de conservação de CPU os aplicativos que estão sendo executados em segundo plano. Além disso ajudar muito na conservação de bateria, aplicativos rodando em primeiro plano, como jogos, serão beneficiados com isso pois terão pouco mais de CPU à disposição para uso.

2. O Windows adapta o próprio sistema operacional à quantidade de memória RAM instalada no computador, ou seja, se com 2 GB RAM o Windows utiliza 700 MB quando o computador está em repouso, com 4 GB de RAM o Windows pode utilizar 1 GB ou mais, pois ele sabe que tem mais espaço disponível de memória RAM - e com isso ele aloca mais arquivos do sistema operacional justamente para ele poder trabalhar mais rápido.
 

Consumo de Memória RAM A FUNDO | Windows adapta uso de memória RAM
O Windows adapta o próprio sistema operacional à quantidade de memória RAM instalada no computador

É por isso que na maioria das vezes quanto MAIS memória RAM utilizada, mais rápido o Windows trabalha - e não o contrário! De que adianta alguém investir comprando 32 GB de memória RAM DDR4, se essa pessoa reclama quando o Windows quer justamente aproveitar esse hardware de ponta para poder trabalhar mais rápido? 

 
3.
Já que estamos falando de memória RAM, aí vai uma dica valiosa para quem trabalha com VM (máquinas virtuais): se você quer que a sua máquina virtual trabalhe mais rápido, instale no host memória RAM "gamer", pois elas são muito mais rápidas que as memórias RAM comuns e você terá um ganho visível de performance.

Consumo de Memória RAM A FUNDO | Pentes de memória para gamer

Agora que você compreendeu que o Windows gerencia muito bem a memória RAM e não precisa da ajuda de ninguém, quando algum amigo seu falar que utiliza um programa de “otimização do Windows” que “libera um monte memória RAM”, indique esse artigo para ele compreender o erro que ela está cometendo :)

Gostou? Compartilhe!

[]s


Aurélio "Baboo"
www.baboo.com.br
MVP Windows 2003-2019