Os computadores com mais memória RAM são potencialmente mais rápidos se nem toda a memória está em uso?


85

Digamos que eu tenho um computador com 16 GB de memória. Se meu computador normalmente usa apenas cerca de 4 GB e nunca atinge 8 GB, é mais rápido que um computador com apenas 8 GB de memória (o mesmo tipo de)? Meu computador funcionaria igualmente rápido removendo a outra metade dos 16 GB e deixando apenas 8 GB?


17
Parte da dificuldade dessa pergunta é que "em uso" é difícil de definir para qualquer sistema operacional moderno com memória virtual e arquivos mapeados na memória. Por exemplo, o segmento de código ("texto") de um programa em execução é "usado" ou "cache"?
R ..

5
Diferentes sistemas operacionais gerenciam a memória de maneira diferente. Nenhum sistema operacional foi indicado na pergunta. O termo "é uso" também pode significar coisas diferentes. Má pergunta, resposta ainda pior escolhida.
23414 Jason

A memória menor é potencialmente mais rápida, pois há menos carga nos drivers de endereço de memória. Na prática, porém, duvido que as velocidades do relógio sejam ajustadas para levar isso em conta, portanto não haveria diferença. (Isso supõe que a RAM "extra" seria apenas sentar lá como um nódulo e não de algum modo ser colocada em uso.)
Daniel R Hicks

3
Esta questão realmente precisa de uma definição de "em uso". Todas as respostas (como as atualmente aceitas) que reivindicam cache informam sobre o uso de memória. Esta é provavelmente a definição mais útil, mas separar diferentes usos da memória seria útil. Presumo que não pode querer discutir se a memória completamente não utilizado está ajudando ...
Nanne

Observe também que ter o próprio ram stick adicional o torna mais rápido, pois ambos devem poder ser acessados ​​em paralelo.
25914 Tyzoid

Respostas:


112

Sim, porque o sistema operacional pode usar a RAM extra como cache do disco, o que acelera o acesso aos dados no disco.

RAM extra não tornará os cálculos vinculados à CPU (sem envolver muita E / S de disco) mais rápidos.


31
Qualquer RAM que não esteja sendo usada para outros fins. (A menos que você tem mais memória RAM do que o espaço em disco, o que é improvável.)
wyzard

30
Linux faz. Eu ficaria surpreso se o Mac OS não fizesse o mesmo. Seria bobo não.
23414 Wyzard

9
"Não mostra" onde? Execute freeem um sistema Linux e consulte a coluna "em cache". Alguns aplicativos de nível superior (como o GNOME System Monitor) não relatam o cache como "em uso" porque essa RAM está disponível para uso por outros programas; o kernel pode descartar caches a qualquer momento.
23414 Wyzard

4
@PTwr - nesse caso, o sistema operacional deve armazenar em cache esses arquivos e não deve acelerar muito - um disco RAM pode ajudar se você estiver escrevendo - mas meça a diferença de velocidade para ver se vale a pena
user151019


59

Como todo sistema operacional gerencia a memória de maneira diferente e nenhuma foi fornecida, responderei no contexto do Windows 7.

Abaixo está um exemplo de um computador com 24 GB de RAM. Embora apenas 7 GB estejam atualmente alocados como memória "Em uso", outros 10 GB são alocados como memória "Em espera" e contêm dados que podem ou não ser lidos novamente. Se for lido, tornará o seu computador "mais rápido". A memória "Free" não está sendo utilizada de momento.

Monitor de recursos

  • "Disponível" é memória em espera e livre. Em outras palavras, toda a memória não é necessária no momento.
  • "Em cache" é a memória em espera e modificada. Toda a memória usada para armazenamento em cache, sendo modificada a parte que espera ser gravada no disco antes de ficar em espera.
  • A memória "total" é toda a memória, exceto o hardware reservado.

Se você quiser saber mais sobre o uso da memória no Windows 7, o TechRepublic possui um ótimo artigo .


Então, o que aconteceria se este computador, sob essa carga, tivesse outros 8 GB adicionados? Suspeito de "nada", mas também suspeito que um usuário com uma carga mais pesada ou mais tempo de atividade terá muito mais cache.

3
@JonofAllTrades eu concordo. Uma coisa que o artigo que vinculei não fala é sobre o SuperFetch (um serviço padrão no Windows 7). O SuperFetch carrega as coisas na memória antes de serem acessadas. Ele registra os padrões de uso em um arquivo e leva várias reinicializações / dias para otimizar totalmente.
Jason

Isso também acontece no Linux?
Casper #

16

Se o sistema operacional estiver usando apenas 4 GB de 8 GB, ele não funcionará de maneira diferente em uma máquina usando 4 GB de 16 GB.

A ram não utilizada não afeta o desempenho da máquina.

No entanto, a situação ideal é que o sistema operacional use quase toda a RAM disponível. O SO e os aplicativos solicitarão o que precisam e o RAM restante deve ser usado como cache - com uma parte livre, talvez para evitar a troca se um aplicativo precisar de mais RAM. O cache ainda conta como sendo "usado" e aparecerá como sendo usado em ferramentas sem memória.

O cache levará um tempo para ser construído, para que você não veja isso na inicialização. Se depois de um tempo, a máquina ainda não estiver usando mais de 4 GB, talvez esteja executando um sistema operacional de 32 bits que não possa endereçar mais de 4 GB (normalmente).


4
Depende se você considera o cache do disco como RAM "usada". O freeprograma Linux relata os dois lados, por exemplo.
23914 Wyzard

Eu acho que o que a GUI representa para um usuário e a situação real pode ser diferente. A RAM usada para o cache é usada independentemente de uma ferramenta da terra do usuário ocultar esse fato ao usuário.
Paul

"Se depois de um tempo a máquina ainda não estiver usando mais de 4 GB ..." -> Novamente, o cache do disco é ótimo, mas na verdade não preenche toda a sua RAM livre se você tiver muitas coisas que podem ser armazenadas em cache do disco - - apenas armazena em cache o que você realmente usou e agora não é , o que provavelmente não chega a mais de dois GB, a menos que suas atividades normais incluam grandes quantidades de photoshop etc. ou o computador seja um servidor ocupado com muitas arquivos estáticos.
25714

@goldilocks Obviamente, "depois de um tempo" é vago, mas pretende significar "após um período que o Windows e os aplicativos tiveram motivos para carregar dados suficientes que excederiam 4 GB". Meu uso é bastante rotineiro e excede isso rotineiramente. O ponto é que, se esse limite estiver sendo atingido, ele pode estar tratando de restrições em vez de falta de necessidade de mais cache.
Paul

9

Outra parte da equação é como os cartões de memória são configurados. Especificamente, as placas-mãe modernas suportam memória de canal duplo, o que permite dobrar a largura de banda entre a placa-mãe e a memória; se você tinha emparelhado a memória e retirou 1 de cada par, você perdeu isso e, portanto, o acesso à memória ao fazer muitas transferências de memória será diminuído, o que resultará em operações mais demoradas. (Por outro lado, se você tiver 8 GB de memória mais rápida emparelhados com 8 Gigs de memória mais lenta e estiver usando apenas 8 Gigs, remover os 8 GB de velocidade mais lenta e reparar mais rapidamente deverá permitir que você corra mais rápido, pois ainda obtém um canal duplo mas não, ele não precisa desacelerar para a memória mais lenta)

Mas, em geral, o material de armazenamento em cache mencionado em outras respostas contribuirá mais para o desempenho geral.


3

A remoção de metade dos 16 GB de memória reduzirá a velocidade do computador.

Isso vale mesmo se você nunca usar quase 8 GB de memória.

O lado do software é abordado em outras respostas e resume-se ao SO que escolhe usar RAM em vez de disco.

No entanto, você pode ver um desempenho impulsionado por hardware ao reduzir pela metade a quantidade de RAM disponível. O motivo é que os barramentos de RAM usam arquitetura multicanal, o que significa que o computador pode transferir dados entre vários módulos de RAM simultaneamente.

Provavelmente o seu computador é de canal duplo. Nesse caso, você pode remover 2 dos 4 módulos de 4 GB de RAM sem afetar o desempenho do hardware. No entanto, a remoção de 1 dos 2 módulos de 8 GB de RAM afetará o desempenho.

Se você possui uma arquitetura de RAM de quatro canais, verá um desempenho atingido, mesmo que sua ram seja de módulos de 4 GB.


2

Se a memória estiver no máximo ou 99%, você perderá velocidade por causa do arquivo de paginação que fica no disco rígido. O disco rígido não chega nem perto da velocidade da RAM, sendo que a RAM é acessada diretamente pela CPU, dependendo da velocidade do barramento.

O Windows usa cerca de 3-4 GB de RAM sem contar outros aplicativos. Estou executando 16 GB há anos e nunca precisei de mais de 8 GB. Realisticamente, os usuários médios de PC nunca usam mais do que 4-6 GB, digamos, para jogos. Eu só vi isso chegar perto de 12 gb uma vez ao compactar um filme ou fazer algo com muita RAM, geralmente tem a ver com multimídia e CPUs com vários núcleos seriam a única maneira de você precisar de mais de 8 GB. e sim, seria executado tão rápido. IMO.

Inativo após 1 dia de atividade: insira a descrição da imagem aqui insira a descrição da imagem aqui

Inativo após 2 dias de atividade: insira a descrição da imagem aqui insira a descrição da imagem aqui

Quanto mais RAM o Windows tem, mais RAM parece usar.

insira a descrição da imagem aqui

Em termos do Windows 7, utilizando RAM para acelerar o processo, aqui está um exemplo.

insira a descrição da imagem aqui

O Chkdsk maximiza a RAM para acelerar o armazenamento em cache, por sua vez, acelera o desempenho e o tempo de verificação do disco; nesse caso, mais faz de fato = mais rápido ...


1
Windows 7? Mesmo com muitas coisas, eu quase não pego o 2G.
Simon Kuang

Quanto mais RAM o Windows 7 tiver, mais ele usará ... as horas extras variarão devido a quais programas você abriu e está aberto até os serviços e aplicativos liberarem a memória que flutuará constantemente ... com relação à pergunta real. Os 8 GB serão tão rápidos quanto os 16 GB, sim e não, dependendo do uso do seu computador. Em circunstâncias normais, você não precisa de mais de 8 GB e não vê perda de desempenho real, se for para usos comuns, como jogos ou navegação na web.
MORBiD 27/07

2

Na prática, é mais provável que a resposta seja "NÃO" à pergunta, conforme indicado. O P. diz que "(uso) nunca atinge 8 GB" e menciona "mesmo tipo de memória", portanto, o fator mais provável que afeta a velocidade (buffer de disco) não será afetado. Um exemplo prático comum são os servidores de banco de dados com memória suficiente para armazenar em buffer todo o disco rígido - por exemplo, com 4 GB de arquivos e 2 GB de memória alocada por processo / sistema não se beneficia de mais de 8 GB de memória.

Exceções:

Mais memória pode atrasar a hibernação - no meu sistema com 32 GB de memória e disco SSD, uma inicialização a frio é significativamente mais rápida do que despertá-la da hibernação, pois economiza os 32 GB inteiros na hibernação, mas uma inicialização a frio requer muito menos para ser lida. Reduzir a memória aceleraria o sistema.

Seria mais rápido se você acessasse mais o disco rígido e a maioria das pessoas tivesse mais uso de disco do que a memória restante para buffer, portanto, a memória extra ajuda. Muitos sistemas operacionais relatam apenas parte do uso como "uso" e o restante é contado como buffer e não "uso". (O Linux relata o uso, inclusive e exclusivo, do buffer).

Os canais de memória afetam o desempenho: [Se remover a memória significa que você reduz o número de canais de memória em uso, o sistema fica mais lento como Foon apontou corretamente]

[editar:] David Schwartz comentou que diminuir a memória reduz os limites para mapeamentos de memória modificáveis ​​e privados no Windows. Aparentemente, o Windows limita o total dessas reservas ao total de memória mais troca, para que você possa ficar sem esse recurso mesmo que haja "memória livre" relatada (uma vez que a memória / troca real não é alocada até que uma página seja acessada, ela não é contado como uso de memória). O Linux se comporta de maneira diferente - cada processo pode alocar até o total de memória e tamanho de troca, e o total em todos os processos pode exceder o total de memória mais troca.


1
Você basicamente afirma que "não" é a resposta correta, mas não diz o porquê.
David Schwartz

Isso foi uma resposta à resposta aceita - não tenho os representantes para comentar diretamente - desculpe a confusão. Para esclarecer, caso não seja óbvio, você usa apenas tanta memória para o buffer do disco rígido quanto é realmente lida ou gravada - se não houver tanto uso do disco ou nunca for acessado, a memória extra não será '. Não faça a diferença.
Julio

1
O exemplo que dei do servidor de banco de dados é um exemplo em que a memória extra faz pouca diferença - todo o disco em uso é armazenado em buffer.
Iheggie

E o fato de que mais RAM significa mais armazenamento de backup, o que pode permitir que o sistema operacional permita alocações que de outra forma recusaria?
David Schwartz

No meu exemplo do servidor de banco de dados - nenhuma diferença, pois nunca recusaria uma alocação por falta de memória livre. Que alocação o O / S recusaria se a. todos os processos na memória, b. o disco inteiro já estava armazenado em buffer na memória, c. tinha memória livre e d. algum outro limite não foi excedido (por exemplo, limites máximos de processo / buffer / tamanho endereçável)?
Iheggie

0

A fragmentação da memória é outro motivo para ter memória extra. Se você tem 8 GB de RAM e tende a mantê-la 80% utilizada, principalmente em casos de uso modernos (com muita troca de memória, como abrir e fechar as guias do navegador), você eventualmente obterá uma fragmentação significativa.

A adição de 8 GB extras de RAM aumenta a probabilidade de o sistema operacional encontrar espaços contíguos de memória disponíveis, o que significa que são necessárias reinicializações menos frequentes para evitar a degradação do desempenho.


Meu entendimento é que a fragmentação da memória é algo que pode ocorrer no espaço de memória de um processo, virtual nos sistemas modernos típicos e que não se aplica ao sistema em geral. Como a memória física é dividida em páginas, mapeadas individualmente nos espaços de memória virtual dos processos, a fragmentação seria um conceito sem menção. Por favor, corrija-me se eu entendi algo errado.
Thomas Padron-McCarthy

0

Possivelmente, mas não necessariamente. Entre outras coisas, uma das coisas que a RAM permite que um computador faça é permitir que o aplicativo aloque memória que eles nunca podem usar. Se o sistema não tiver armazenamento de backup suficiente (que inclui RAM) para permitir que todas as alocações emitidas até o momento consumam o máximo de memória possível, o sistema operacional precisará recusar essas alocações ou se comprometer demais. Alguns sistemas operacionais nunca se comprometem demais e praticamente todos os sistemas operacionais modernos limitam a quantidade de comprometimento excessivo que permitem.

Portanto, a memória que não está em uso pode melhorar o desempenho, permitindo operações que possam exigir que a RAM seja bem-sucedida, onde, caso contrário, elas falhariam.


-1

Mais memória RAM não acelera o computador. Menos ram "diminui a velocidade" do computador.

Os computadores têm sua velocidade máxima física (isso inclui overclocking também) e nada pode torná-los mais rápidos que isso.


3
Como mostra a resposta de Wyzard, o "computador" como um todo inclui acesso ao disco, onde mais memória ram permite mais armazenamento em cache e, portanto, acelera-o.
por favor me apague

Você quer dizer que podemos aumentar o limite de velocidade física de um computador adicionando terabytes de memória RAM?
Xtro

Levando em consideração os discos rígidos, sim.
delete me

BTW, menos RAM nem sempre diminui a velocidade do computador. O cache L3 muitas vezes atrasou o computador devido a falhas no cache.
delete me

2
Acho sua resposta tautológica. Sim, o 'limite de velocidade máxima' da CPU é a velocidade máxima da CPU. Bom show. No entanto, do ponto de vista prático , comparado a um PC com apenas RAM suficiente, um PC com excesso de RAM terá desempenho um pouco mais rápido.
317 Joe
Ao utilizar nosso site, você reconhece que leu e compreendeu nossa Política de Cookies e nossa Política de Privacidade.
Licensed under cc by-sa 3.0 with attribution required.