Muita memória RAM listada como livre em vez de standby

0

Eu tenho andado por aí no Monitor de Recursos no Windows, e notei que muitas vezes há uma grande quantidade de memória que está listada como Livre, em vez de ficar em espera. Eu entendo que o superfetch basicamente puxa coisas que você provavelmente precisará, e armazena em cache na RAM, então por que não está utilizando este espaço?

Além disso, eu sei que um sistema como o readyboost deve manter os arquivos normalmente acessados em cache a partir de um computador. No entanto, olhando para o Monitor de recursos, percebo que a maior quantidade de espaço livre ocorre quando fecho um programa. Por que não é manter os dados desse programa fechado na RAM, para que ele possa inicializar exatamente no mesmo estado mais rápido?

Esse detalhe específico que notei é o que me levou a perguntar esta pergunta sobre o superusuário, em que discussões iniciais indicaram que qualquer aumento no desempenho que eu vi era provavelmente um efeito placebo.

    
por user173724 28.07.2017 / 07:48

1 resposta

1

I understand that superfetch basically pulls stuff that you will likely need, and caches it in RAM, so why is it not utilizing this space?

O superfetch tenta determinar as coisas que você provavelmente precisará no futuro e carregá-lo na memória, fazendo com que o computador responda mais rápido.

Como uma contra-pergunta - considerando que todo o seu sistema rodando ocupa ~ 4GB de RAM, com 2GB de espera, o que você executa com freqüência que ocuparia um gig ou dois de memória extra?

I notice that the largest amount of free space occurs when I close a program. Why is it not keeping the data from that closed program in RAM, so it could boot up to the exact same state faster?

A limpeza da memória usada é um recurso inerente de cada programa, pois isso pode causar problemas em qualquer programa que deseje usar a mesma memória no futuro. De fato, (re) usar memória que já está em um estado específico é um grande erro na programação, porque os dados são interpretados de maneira diferente por programas diferentes ou até mesmo pelo mesmo programa entre execuções.

Da mesma forma, "inicializar até o mesmo estado" é provavelmente indesejável para muitos programas. Eu aprendi minha lição no antigo Tomb Raider - nunca salve enquanto estiver pegando fogo.

Não obstante, há muitas razões pelas quais é indesejável manter os dados entre as sessões, especialmente se houver um erro. Isso também pressupõe uma conscientização do programa que o Windows pode não ter (o que mantemos?).

Considere também programas que não são usados com freqüência ou que realmente causam um pico no uso da memória. Se houver pouca ou nenhuma RAM livre, a memória deve ser desmarcada para uso. Muitas vezes, isso pode resultar em gravar no disco (e, posteriormente, lê-lo provavelmente mais tarde), o que é muito mais lento que a RAM.

Por fim, como comentário, acho que a suposição sobre o tamanho dos dados também está errada. Pode levar uma grande quantidade de memória para executar um programa, mas a menos que você esteja fazendo algo com multimídia, os "dados" do programa tendem a não ser muito grandes. Por exemplo, o Firefox na minha máquina requer cerca de 300MB de memória. Mas qualquer "dado" de página da web está quase certamente abaixo de 20MB.

Se você está absolutamente pronto para usar essa memória, aqui estão dois pensamentos:

  • Revise msconfig e verifique se não há limite de memória no lugar. Não há nenhuma indicação de que isso seja um problema, mas você pode verificar novamente se o Windows está configurado para usar a quantidade máxima de memória possível.

  • Crie um disco RAM . Parece que você realmente quer que a memória seja usada e isso pode ser uma boa maneira de fazer isso, especialmente porque você parecia preocupado com a velocidade do programa.

por 28.07.2017 / 08:50