Consumo de Memória RAM A FUNDO - Vídeos do BABOO - Fórum do BABOO
Consumo de Memória RAM A FUNDO: assista, vote e comente..
VÍDEO PUBLICADO DIA 04/AGO/17
Nesse vídeo eu abordo Consumo de memória RAM A FUNDO, mostrando como o Windows trabalha com a memória RAM, dou exemplos práticos e destruo a eterna crença que "quanto mais memória RAM livre, melhor".
Nesse vídeo eu abordarei Consumo de memória RAM A FUNDO, mostrando como o Windows trabalha com a memória RAM. Esse vídeo ajuda os internautas a compreenderem um pouco mais sobre performance e otimização no Windows, já que infelizmente a atual geração de internautas aprendeu isso com "especialistas" e youtubers que não entendem nada sobre isso, e ensinam ideias e conceitos errados.
No meu último vídeo sobre a edição LTSB eu notei que infelizmente muitos gamers defendem mitos e crenças incorretas que certamente foram ensinados pelos "especialistas" 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.
BABOO: Consumo de memória RAM A FUNDO
O resultado disso é que a internet está cheia de "dicas" e "soluções" equivocadas para otimização de games e do Windows em si, da mesma maneira que acontece com os "guias de otimização de SSD" que eu abordei nos 3 vídeos sobre otimização de SSD, aonde praticamente todas dicas existentes na web são inúteis.
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. Além disso, o Windows 7 introduziu o ReadyBoost, que é um cache complementar à memória RAM e que otimiza bastante o carregamento de programas (1)
Exemplo de 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, e se o Photoshop precisar de mais espaço na memória RAM, o Windows 8 liberava os espaços de Baixa Prioridade para isso, mantendo na memória RAM os módulos mais usados das aplicações importantes, evitando que elas fossem salvas no arquivo de paginação do HD, cujo acesso é muito mais lento do que a memória RAM.
E 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.
Isso tudo permite que o Windows 10 funcione muito melhor em computadores com pouca memória RAM em comparação com o Windows 7 e Windows 8.1, além de evitar a diminuição do tempo de vida útil do HD ou SSD por eles serem menos utilizados.
Não é à toa que existem tablets com apenas 1GB de memória RAM rodando Windows 10 e que funcionam de modo satisfatório. Isso acontece principalmente 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. 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".
Memória RAM NÃO É um imenso bloco de concreto inerte
Nada mais errado do que isso. 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 deixará 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 simples: imagine dois computadores com a mesmíssima configuração de hardware e software, aonde ambos têm 4GB de memória RAM instalada. Quando o computador A está sendo utilizado, ele gasta 1GB de memória RAM, e quando o o computador B está sendo utilizado, ele gasta 50% a mais: 1,5GB de memória RAM. Com isso, o computador A tem 3GB de memória livre, enquanto o computador B tem 500MB a menos: 2,5GB.
Pergunta: 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 500MB a menos, você também está enganado. Por que? Pois não fazemos ideia do que são esses 500MB 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 500MB 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 100MB), 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 100MB cada), e mais dez arquivos de cache desses programas e do Windows, totalizando 500MB.
Quando o computador A for utilizado, ele precisa acessar constantemente o HD 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 HD 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 HD e SSD nem serem acessados.
O que define qual dos computadores é mais rápido é o fato do HD 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, co 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 8GB ou 256GB de memória RAM adicional, isso é irrelevante por não impedir EM NADA a lentidão existente no acesso aos dados do HD e SSD.
A conclusão é óbvia: mesmo que o computador A tenha 500MB 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 HD e SSD, que são muito mais lentos que a memória RAM.
Computador com mais memória RAM livre é mais rápido? NÃO MESMO!
Tradução: de que adianta você ter muita memória RAM no seu computador se você não se beneficia disso para deixar o seu PC mais rápido?
Muitos gamers ostentam que o Windows que ele usa "consome menos CPU e RAM" do que qualquer outra versão, como se isso fosse algo vantajoso, quando na prática isso apenas mostra que eles não compreendem o gerenciamento de memória RAM do Windows por se gabarem disso.
A prova final disso é que existe 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í, com vários processadores com dezenas de cores, algumas centenas de GB 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.
PC de gamer é um PC da Xuxa se comparado com servidores..
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.
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. A conclusão disso é que não adianta você ter um hardware superpotente e querer que o Windows utilize pouca CPU e memória RAM, pois é usando 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. Isso não faz sentido..
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 Index da Pesquisa 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.
Obviamente eles estão errados. Você se lembra a primeira funcionalidade que eu listei no Windows 8? 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.
CORTANA = 0% CPU
Se você abrir o Gerenciador de Tarefas, verá que a Cortana (que é o SearchUI.exe) está com status Suspenso. Isso acontece, pois o Windows 10 percebeu que eu não estou utilizando-a, então ele "desligou" ela, consumindo 0% de CPU, e você verá que o 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.
Cortana e Aplicações Modernas: 0% de CPU
Aí vão três informações adicionais sobre CPU e consumo de memória RAM no Windows:
1. A versão Fall Creators do Windows 10 que será lançada no final do ano, terá algumas novidades interessantes. O Fall Creators vem com 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.
Windows se adapta automaticamente à quantidade de memória RAM instalada
2. O Windows adapta o próprio sistema operacional à quantidade de memória RAM instalada no computador, ou seja, se com 2GB RAM o Windows utiliza 700MB quando o computador está em repouso, com 4GB de RAM o Windows pode utilizar 1GB ou mais, pois ele sabe que tem mais espaço disponível de memória RAM, e aloca mais arquivos do sistema operacional, obviamente ocupando mais memória RAM, justamente para ele poder trabalhar mais rápido.
É 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, afinal de que adianta alguém investir comprando 32GB 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?
Máquinas virtuais se beneficiam com memória RAM para gamers
Agora que você compreendeu que o Windows gerencia muito bem a memória RAM e não precisa da ajuda de ninguém, eu espero que quando alguém falar para você que utiliza um programa de "otimização do Windows" que "libera um monte memória RAM", você dê uma aulinha para essa pessoa para mostrar que essa funcionalidade só serve para iludir o usuário.
(1) O ReadyBoost foi introduzido no Windows Vista (2006), e não no Windows 7 (2009).
hithfain90 0
12 Anos, 4 meses e 10 dias
Postado Outubro 2, 2017 (editado)
Achei interessante o vídeo, mas foi um white paper de memória do Windows do que uma análise profunda do consumo de RAM pelo Windows, na minha opinião. Mas de qualquer forma, valeu o conteúdo porque não sabia que o Windows tinha a funcionalidade de identificar informações duplicadas e compactação de memória... Segue algumas dúvidas...
1. Pelo vídeo, deu a entender que a principal vantagem no gerenciamento de memória RAM é feita pela priorização da mesma. Como é feita essa priorização? O usuário tem alguma forma de controle? O que acontece quando um arquivo que está com baixa prioridade é substituído por um arquivo em alta prioridade mesmo estando em uso?
2. Sobre a compactação de memória. Não há como negar que compactar a memória RAM vai gerar algum overhead na CPU, por menor que ela seja. Existe algum documento mostrando tempos dessa operação? Existe alguma forma de controlar essa compactação? É feita a compactação da memória inteira ou parcial? Se eu tenho 32gb de RAM com 30gb livres, não faz sentido o Windows querer compactar essa memória sendo que estou utilizando 6% da minha memória. Eu achei interessante essa questão, porque no mundo corporativo, já se consegue fazer com que a leitura de um bloco compactado seja mais rápida do que a leitura de um bloco não compactado. Se o Windows conseguir trazer esse benefício para a memória RAM, vai ser show. E ainda conseguir compactar somente os blocos que estão sendo lidos, por exemplo, textura de jogos.
Outro ponto que eu gostaria de comentar é a respeito de uso de CPU e memória no mundo corporativo. Trabalho com Linux on-premise e nem sempre gostamos de ter 90%+ de uso de CPU e memória. Visto que geralmente estamos trabalhando com clusters e se uma máquina falhar, os outros servidores do cluster não serão capazes de absorver o processamento da máquina que apresentou falha. Mas entendo que há cenários e cenários de mundo corporativo e pode ser que o Linux trabalhe de outra forma mas hoje, eu não tenho esse luxo de poder consumir 100% de processamento das minhas máquinas...
E para finalizar, o processamento de um jogo não realizada somente pela GPU. Ela é responsável pelo processamento gráfico e no máximo, físico. Agora todo o resto é feito pelo conjunto da obra. Temos hoje no mercado vários jogos tripe-A com uso intenso de CPU e muitas vezes, a CPU chegando a limitar o processamento da GPU (seja ela por má otimização do jogo ou por obsolescência programada de hardware). Acho interessantes esses debates para poder debater o funcionamento do Windows e poder cada um ajustar o seu sistema operacional com o hardware que temos para poder extrair ao máximo dele.
Editado Outubro 2, 2017 por hithfain90
11 Anos, 5 meses e 6 dias
Baboo. E no caso do Ccleaner que em certos momentos era confiável até ser vendido para os chineses. Me diz. Como está a sua opinião agora sobre este programa?