Recentemente, para proteger meu computador de um futuro, eu adicionei em cima dos meus 4 GB de memória original. Eu trouxe a memória total para 8 GB e não tenho alterações visíveis na velocidade - mesmo quando deveria. Entrei no Gerenciador de tarefas e vi que meu computador NÃO passava de 4 GB de memória sendo usado, mesmo com o Chrome e o Firefox abertos com 20 guias cada.
Depois de pesquisar, tudo o que todos haviam sugerido era verificar quanta memória era utilizável. Curiosamente, ele diz que tenho 8 GB de memória e 7,74 GB são utilizáveis.
As especificações do meu HP Pavilion g7-1075dx podem ser encontradas aqui. É um notebook com Windows 7 Home Premium de 64 bits com AMD Phenom II.
Minha principal pergunta é: com meu computador de 64 bits, por que meu computador não está usando mais de 4 GB de memória, mesmo quando mais de 7 é utilizável?
EDIT: se ajudar, o Monitor de Recursos descreve todas as outras RAM como "Em espera"
Respostas:
A RAM "Em espera" está em uso. Ele está sendo usado como um cache de página (contém páginas perdidas recentemente de todos os conjuntos de trabalho do processo; ou seja, falhas de página podem ser resolvidas sem ir para o disco) e também para cache proativo de arquivos pelo SuperFetch.
É considerado "disponível" porque as páginas em espera não precisam ser gravadas no disco antes de poderem ser atribuídas a outro uso. Tais como quando um processo atinge uma falha de página que não exigem a leitura do disco, nova página física (s) devem ser atribuídos a esse processo e, se necessário estes podem ser tomadas a partir da lista de espera. (Esta não é a primeira opção para encontrar páginas para esse fim, seria a lista livre e, em seguida, a página zero).
Em outras palavras, seu sistema está operando como deveria.
Você pode forçar seu sistema a obter mais RAM no estado "em uso" facilmente com a ferramenta de linha de comando
testlimit
, uma das ferramentas usadas nas experiências nos Internals do Windows . Não faz parte das ferramentas sysinternals regulares, mas está associado a elas; encontre-o aqui no site sysinternals. O download é um arquivo zip que contém duas versões, testlimit.exe e testlimit64.exe. Ambos têm reconhecimento de endereço grande vinculado, portanto, a versão de 32 bits poderá alocar até 3 GiB em uma máquina de 32 bits inicializada com / 3GB, até 4 GiB em uma máquina de 64 bits.c:\> testlimit -?
dá ajuda.c:\> testlimit -d 4 -c 512
tentará alocar 2 GiB de espaço de endereço virtual privado do processo em 512 alocações de 4 MiB cada. Isso deve funcionar bem em uma máquina de 64 bits. Em uma máquina de 32 bits não inicializada com / 3GB (a maioria não é), pode ocorrer um erro um pouco antes porque já existem alguns MiB de coisas no processo (como o próprio programa, todas as DLLs etc.), então não há 2 GiB completos disponíveis para o programa alocar.Nos dois casos, haverá uma redução na RAM "disponível" e um aumento na RAM "Em uso", mas não necessariamente no valor de 2 GiB, porque não há garantia de que o sistema operacional deixe todos os 2 GiB no conjunto de trabalho privado do processo. Mesmo que isso ocorra no curto prazo, você poderá ver o conjunto de trabalhos do processo diminuir mais tarde, conforme o sistema operacional decidir "hm, você realmente não está fazendo nada com ele, outros processos precisam mais" e o pagina.
Aumente muito o tamanho dos "chunks" de alocação, reduzindo o número de chunks de acordo e provavelmente falhará mais cedo, pois cada alocação deve ser virtualmente contígua. por exemplo, tente encontrar sete blocos de 512 MiB em um espaço de endereço de 4 GiB e você provavelmente falhará.
Se você usar a opção l (eak) em vez de d (irty), o programa alocará o espaço virtual, mas nunca fará referência a ele. Isso não resultará em uma redução considerável na RAM "disponível".
(A opção d (irty) recebe o nome do "bit da página suja" na entrada da tabela de página x86 / x64, que é definida quando a página virtual correspondente é acessada com um operando no estilo "modify", o que significa que o conteúdo da página foi Isso é uma indicação do Windows de que, caso a página precise ser removida do conjunto de trabalho do processo, seu conteúdo deve ser salvo em algum lugar antes que a página possa ser usada para outra coisa. As páginas com o conjunto de bits "sujo" vão para a "lista de páginas modificadas" imediatamente após o despejo; a partir daí, o Windows as grava em seus respectivos repositórios.)
Você precisará ter "commit" suficiente disponível para que esses testes funcionem conforme descrito acima (mesmo para a opção l (eak)), mesmo que essa opção não use nenhuma quantidade apreciável de RAM. Especificamente, seu "limite de confirmação" deve ser pelo menos 2 GiB (ou o quanto você estiver alocando) maior que a "taxa de confirmação" antes de iniciar seu teste. Observe que isso se aplica mesmo se você estiver usando a opção l (eak), não apenas d (irty). Se você atingir esse limite, verá os pop-ups "sistema com pouca memória" ou similar. A solução, é claro, é adicionar mais RAM e / ou aumentar as configurações do arquivo de paginação.
fonte
O Windows pode realmente ser configurado para limitar o uso da RAM. Não sei como ou quem teria definido essa configuração no seu laptop, mas você deve verificar:
Este artigo tem mais detalhes, mas é fácil acessar a caixa de diálogo acima:
Clique no ícone Iniciar e digite
msconfig.exe
na caixa de pesquisaInicie o msconfig.exe, clique na
Boot
guia, clique noAdvanced Options...
botão e você está em:Digite um valor razoável, por exemplo, 8192 para 8 GB de RAM ou desmarque a
Maximum memory
caixa de seleção completamente, o que deve fazer com que o Windows use toda a RAM que você possui. Eu definitivamente tentaria ambas as opções.fonte
Você pode usar o SysInternals RAMMap para ver exatamente o que o PC faz com sua RAM física . Outras ferramentas, como o Gerenciador de Tarefas ou o Process Explorer, concentram-se principalmente na memória virtual e não são as melhores ferramentas para essa situação.
Na guia "Usar contagem", você pode ver que grandes partes não são utilizadas enquanto você não abriu muitos aplicativos.
Isso não significa que seu PC permanecerá nesse estado. Basta abrir alguns programas e a memória será usada.
fonte
Citando um artigo muito bom sobre o assunto:
E, na minha experiência, isso é absolutamente verdade, em geral. A menos que você esteja executando muitos programas ao mesmo tempo e esses programas possuam requisitos significativos de RAM, você dificilmente verá qualquer benefício no mundo real em ter mais de 4 GB de RAM.
As pessoas parecem não perceber que 4 GB é um monte de RAM. Fazer o Windows usar mais do que isso exige esforço. Você precisará abrir muitos aplicativos diferentes e, nesses aplicativos, abrir alguns arquivos grandes. Coloque algumas guias dos vídeos do YouTube e você poderá começar a ver> 4 GB de utilização.
fonte
O Windows faz algumas coisas inteligentes, como memória de paginação. Pode ser que ele considere a maioria das tarefas que você está executando desnecessárias e decida despejar um monte de coisas no arquivo de paginação, fazendo parecer que está fazendo isso apenas para evitar o uso de toda a sua RAM. Você pode testar essa teoria desativando a paginação, embora isso não seja algo que você deva ter configurado permanentemente. Existem muitos tutoriais na internet para fazer isso. Uma das coisas que ele faz (mesmo em minhas máquinas de 24 GB e 64 GB) é tornar as regras de paginação muito mais rigorosas quando atingir aproximadamente 50%, 80% e 90% de consumo (esses números são aproximados). Percebi em cada um desses estágios que um monte de coisas é despejado no arquivo de paginação.
Uma coisa divertida a se fazer pode ser algo assim:
Isso é algum código C. Obtenha o GCC ou algum compilador, torne-se um exe e observe o seu consumo de memória aumentar. Se você deseja consumir mais de 2 GB de memória, precisará compilar e executar como um processo de 64 bits. Se você gosta desse tipo de coisa, pode ser um experimento interessante, se nada mais :)
Edit: Só queria notar que o programa não vai morrer com isso. Eu o editei a partir de algum código anterior, pois não tenho certeza de que outro código funcionaria (a memória seria paginada, resultando em nenhuma memória sendo consumida, risos). O novo código contém uma linha
int gb = 2; // memory to consume in GB
- alterar o 2 ajustará a quantidade de memória que o programa deve consumir; portanto, você pode configurá-lo para usar o quanto quiser. Configurá-lo para algo acima do que o seu sistema provavelmente causará uma falha (não testado, portanto, use com cuidado)fonte
int gb = 2; // memory to consume in GB
- basta mudar a 2.Você está usando um programa de 32 bits para testar a velocidade do computador? Nesse caso, observe que os endereços de 32 bits podem apontar apenas para 4 GB de RAM, mesmo se você tiver mais RAM presente. Você precisará repetir o teste usando um programa de 64 bits e verificar sua velocidade com 4 GB de RAM presente e novamente com 8 GB de RAM presente, se desejar resultados úteis. Além disso, ele precisará ser um programa de 64 bits que possa usar mais de 4 GB de memória para rodar mais rápido - nem todos. Para saber se um programa é de 32 bits, inicie o programa e deixe-o em execução; em seguida, inicie o Windows Task Manager, clique em Processos e role para baixo até encontrar o programa de seu interesse. Se o nome do programa na coluna Nome da imagem for seguido por um espaço, então * 32, será um programa de 32 bits.
fonte
Obtenha o Process Explorer (procexp) da Sysinternals . Ele possui um gráfico de recursos e pode mostrar o uso da memória por processo, muito melhor do que a exibição do processo de estoque.
Você pode observar o uso de memória RAM física e o uso de spqce virtual, para ver se você simplesmente não está usando tudo ou parece precisar de mais, mas está limitando o uso físico.
A maioria dos programas mundanos usa um tamanho de conjunto de trabalho diferente que manterá a demanda baixa. Se um programa aloca uma tonelada de memória, na verdade não está usando tudo ao mesmo tempo ...
O Windows moverá agressivamente as páginas do seu programa para uma lista em que estejam disponíveis, mas se ocorrer uma falha na página, ela será retirada da lista sem precisar carregá-la do arquivo de troca. O modo de espera pode estar incluindo estes. Diferentes ferramentas rotulam conjuntos diferentes de maneiras diferentes.
Você pode tentar desativar o arquivo de troca, pelo menos para este teste. Isso fará com que a memória de dados seja realmente usada. Embora procexp possa ser suficiente para ver isso claramente.
fonte