O computador não usa mais do que 4 dos meus 8 GB de RAM ...? (Computador de 64 bits)

17

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"

mattycfp
fonte
1
Como você pode ver que ele não está usando mais de 4 GB? Você já tentou meus outros programas para testar ou usar memória? Chrome e Firefox não são tão exigentes memória sábio ...
Mokubai
9
Até agora, ninguém mencionou que mais RAM não torna o computador mais rápido por si só. A única vez em que você verá um aumento notável de velocidade é se sua carga de trabalho consumir tanta memória RAM que o Windows precisa paginar continuamente em disco - nesse caso, adicionar mais memória RAM pode definitivamente acelerar as coisas. Mas 98% das pessoas não fazem o tipo de coisa que exige> 4 GB de RAM e, consequentemente, nunca experimentarão nenhum benefício tangível em ter toda essa RAM extra.
misha256
1
@mattycfp Há uma outra possibilidade que conheço que pode limitar o uso da RAM do Windows. É possível que você, outra pessoa ou algum software coloque um LIMITE no uso da RAM? Dê uma olhada neste artigo e siga as instruções: helpdeskgeek.com/windows-7/…
misha256 1/15/15
1
O Firefox tem um limite de 2 GB em todas as guias / processos, o Chrome também. Isso é um acréscimo ao limite normal por processo.
JamesRyan 01/09/2015
6
Ter o Firefox e o Chrome abertos com 20 guias cada um definitivamente não é suficiente. Eu tenho o Firefox aberto com 157 abas e nem consome 1 GB de RAM. Verifique durante a execução dos jogos. A resposta de Jamie Hanrahan é muito boa e detalhada. Para obter mais informações, leia a postagem no blog de Mark Russinovich, Empurrando os limites do Windows. link .
Sbecker 01/09/2015

Respostas:

27

se ajudar, o Resource Monitor descreve todas as outras RAM como "Em espera"

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 512tentará 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.

Jamie Hanrahan
fonte
16

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:

Configuração máxima de RAM

Este artigo tem mais detalhes, mas é fácil acessar a caixa de diálogo acima:

  1. Clique no ícone Iniciar e digite msconfig.exena caixa de pesquisa

    como iniciar o msconfig

  2. Inicie o msconfig.exe, clique na Bootguia, clique no Advanced Options...botão e você está em:

    caixa de diálogo msconfig boot settings

  3. Digite um valor razoável, por exemplo, 8192 para 8 GB de RAM ou desmarque a Maximum memorycaixa 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.

    configuração máxima de ram

misha256
fonte
@ misha256 - Profundamente confuso com uma resposta que tinha muito pouco conteúdo originalmente, e sim, se alguém enviasse uma das respostas, eu nem pensaria duas vezes sobre as respostas (exceto talvez julgue a utilidade delas um pouco mais severa).
Ramhound
@ misha256 se esse fosse o problema, o OP não estaria vendo cerca de 4 GB em uso e mais outro em espera de 4 GB. A RAM que é excluída por essa opção não aparece no "modo de espera"; O OP também não estaria vendo "8 GB de memória e 7,74 GB são utilizáveis". (os 256 MB não "utilizáveis" são esperados devido, por exemplo, à placa de vídeo).
Jamie Hanrahan
10

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.

SysInternals RAMMap

Isso não significa que seu PC permanecerá nesse estado. Basta abrir alguns programas e a memória será usada.

Thomas Weller
fonte
O termo "RAM virtual" não deve ser usado. Além disso, eu não diria que essas outras ferramentas se concentram principalmente na memória virtual - elas têm muitos contadores disponíveis que mostram o uso da memória física.
Jamie Hanrahan
5

Citando um artigo muito bom sobre o assunto:

Mais memória na verdade não aumenta a velocidade de processamento [de um computador]. Somente uma CPU mais rápida pode fazer isso.

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.

misha256
fonte
2
@mattycfp Acabei de abrir 16 Windows na minha máquina de 4 GB, incluindo Internet Explorer, Firefox, Word, Excel, Outlook, Skype, Visual Studio 2010 (um conhecido RAM RAM), Photoshop, Media Player, VLC, MPC-HC, além de alguns outros aplicativos aleatórios, e eu estou alternando entre eles fazendo coisas, carregando documentos, reproduzindo vídeos, tudo, e meu uso real de RAM é de 2,2 GB E a máquina está mais rápida do que nunca. Veja, 4GB faz tudo isso fácil ;-)
misha256
3
@mattycfp 120 Windows de FF? É mais provável que você consiga maximizar sua CPU do que a RAM, especialmente em um laptop. Além disso, não se esqueça de que o FF é um aplicativo de 32 bits, e várias janelas do FF compartilham um único processo de 32 bits; portanto, o FF é bastante limitado, podendo usar apenas 2 GB do total de 8 GB. É por isso que você precisa executar vários aplicativos diferentes ao mesmo tempo para testar como o Windows usa sua RAM, e não apenas 120 Windows de FF.
misha256
4
@ misha256 Você vai ver ganhos de desempenho se o seu sistema está constantemente trocando de memória. À medida que a pressão da memória aumenta, a paginação aumenta e o sistema fica mais lento. Não é que a adição de memória vai fazer você ir mais rápido, mas vai mantê-lo de abrandar, especialmente se o software envolvido assume uma certa quantidade de paginação em seus requisitos de sistema. Esse artigo não pareceu mencionar muito sobre paginação. Paginação é o que atrasa você.
phyrfox 01/09/15
4
@ misha256 Tenho IRC, Spotify, Notepad ++, Chrome e Gerenciador de Tarefas abertos e estou usando 3,02 GB do meu total de 4 GB :( Abrindo 3 instâncias do VS2013 (o que costumo fazer no trabalho) e isso me maximiza. um pouco mais fácil para chegar a 4GB limite do que você pensa, mas praticamente exige um usuário de energia.
Thebluefish
1
@ misha256 Correção: O FF é sensível a endereços grandes e pode endereçar até 3 GB em um processo de 32 bits. A versão de 64 bits do FF (atualmente em beta para Windows) pode obviamente tratar muito mais. Também acho que você está generalizando um pouco demais ao dizer que é difícil "usar" (conjunto de trabalho particular residente) mais de 4 GB de RAM; realmente depende muito do que você está fazendo e do quanto você mantém aberto. Meu uso da linha de base já excede isso.
Bob
5

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:

#include <stdio.h>
#include <stdlib.h>
#include <string.h>

#define PAGE_SZ (1<<12)

int main() {
    int i;
    int gb = 2; // memory to consume in GB

    for (i = 0; i < ((unsigned long)gb<<30)/PAGE_SZ ; ++i) {
        void *m = malloc(PAGE_SZ);
        if (!m)
            break;
        memset(m, 0, 1);
    }
    printf("allocated %lu MB\n", ((unsigned long)i*PAGE_SZ)>>20);
    getchar();
    return 0;
}

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)

XtrmJosh
fonte
Eu gostaria de poder compilá-lo, mas meu Internet mantém corromper cada download tento: U
mattycfp
5
@mattycfp Então você não pode usar mais de 4 GB de RAM no seu sistema operacional e todos os seus downloads continuam corrompidos? Hora de (a) LIMPAR o disco rígido e fazer uma nova instalação do sistema operacional, ou (b) jogar o laptop na lixeira e obter uma instalação adequada.
precisa saber é o seguinte
1
O programa oferecido aloca e "toca" 2 GB de memória virtual, uma página de cada vez, o que resultará em cada página sendo danificada na RAM imediatamente após a alocação. Mas isso não garante que o Windows mantenha tudo na RAM ao mesmo tempo. Como o programa não está acessando repetidamente toda a VM, as páginas alocadas primeiro podem estar sujeitas a paginação. Você pode obter o mesmo efeito que esse programa com a ferramenta "Testlimit" do Windows Internals, opção -d.
Jamie Hanrahan
@mattycfp, se esse for o caso, você pode querer ver que a RAM não tem culpa ... Todo arquivo que você baixa é corrompido de alguma forma? Às vezes, também existem problemas com paus incompatíveis; portanto, verifique o manual da placa-mãe e confirme se sua RAM está organizada de acordo com essas instruções (os slots serão numerados 1 e 2 ou 1-4 e, geralmente, 1 e 3 devem ser emparelhados com o mesmo "tipo" ou "marca e modelo" da RAM, como serão 2 e 4). & Sim, este programa deve utilizar-se de 2 GB, que pode ser editado, alterando a linha int gb = 2; // memory to consume in GB- basta mudar a 2.
XtrmJosh
Por que você declarou gb como sendo do tipo int quando o único uso o lança como não assinado por muito tempo? Você também está tratando da mesma maneira e fazendo uma comparação mista entre o int e o elenco para não assinado. Então, faça apenas que eu assinei por muito tempo.
JDługosz 01/09/2015
1

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.

milesrf
fonte
se você executar vários programas de 32 bits, o uso total de RAM pode chegar facilmente a 8 GB.
precisa saber é o seguinte
0

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.

JDługosz
fonte