Meu problema parece simples. Meu computador está usando mais memória física do que realmente é contabilizado na soma dos meus programas.
! (Executando o Windows 8.1, os patches mais recentes)
Eu uso 7,5 GB. O uso total é de 12 GB. O Delta é de 4,5 GB. Isso é algo que eu consideraria muito alto.
A maioria das postagens que encontrei neste site está relacionada a vazamentos de memória do driver que afetam o 'pool paginado' e o 'pool não paginado', criando um alto uso. No entanto, minhas páginas + pool não paginável é em torno de 650MB, o que eu entendo não está muito acima de 'normal', e não deve causar este delta de 4,5GB. Para investigar melhor isso, eu até mesmo corri poolmon.exe
e não encontrei nenhum desses drivers quando eu classifiquei pelo uso.
Então minha pergunta é simplesmente: o que dá? Onde você é a memória?
Atualizar:
Um usuário gentil me encaminhou para o rammap do programa, que fornece descrições mais detalhadas da alocação de memória. Ao executá-lo, descobri que 2 GB de memória na seção "em uso" foram alocados para "Arquivos mapeados", o que presumo ser o cache de disco. Ao ir para a guia "páginas físicas" e classificar por esses arquivos, aprendi que muitos dos arquivos mapeados ativos eram arquivos em uso por um aplicativo torrent que hospedava grandes arquivos de dados. Terminar o aplicativo liberou 1,2 GB de cache de disco em 'espera', dando a captura de tela que você pode ver abaixo.
O 'delta', caiu para 3,2 GB, o que está se aproximando do que eu considero normal, mas ainda está no lado alto, mas se você subtrair o restante do 'arquivo mapeado' de 800MB, você acabará com 2.4 GB, que poderia ser simplesmente explicado pela contagem listada em Usuários no gerenciador de tarefas estando incorreta.
Com esta informação, agora não tenho tanta certeza. Isso é só eu não entendendo a contabilidade da memória? A seção 'compartilhável' na tabela é realmente usada por programas do usuário e não é contabilizada no espaço do usuário no gerenciador de tarefas? Se assim for, então este problema seria uma mistura de mim, sabendo que o cache de disco pode contar na memória 'In Use' / 'Active' e que a guia do usuário no gerenciador de tarefas é imprecisa.
fonte
Respostas:
O Windows 8, como quase todos os sistemas operacionais modernos, faz de tudo para usar o máximo de memória possível. Por quê? Porque qualquer memória não usada é sempre desperdiçada.
Se um sistema tem 8GB de memória e usa apenas 7GB, não ganha nada. Não pode usar 9GB depois. Ele simplesmente perdeu para sempre qualquer benefício que poderia ter ganho com aquele 1GB extra enquanto a memória estivesse livre.
Por exemplo, digamos que seu sistema tenha muita RAM livre e você execute algum programa. Quando o programa termina, o sistema tem duas opções. Ele poderia manter o programa (o arquivo executável real no disco) na memória ou poderia liberar a memória que continha o arquivo do programa.
Se liberta a memória, tem que se dar ao trabalho de libertá-la. Se alguma vez quiser usar essa memória novamente, ela terá que se dar ao trabalho de não liberá-la. E se esse programa for executado novamente, ele deve ser carregado do disco. Eixo triplo.
Se não liberar a memória, não precisa se dar ao trabalho de liberá-la. se ele quiser usar essa memória para algum outro propósito, não precisa se incomodar em desfazer isso, salvando um passo. E se o programa for executado novamente, não precisa ser carregado do disco. Vitória tripla E, claro, como nenhum processo está executando esse programa atualmente, a memória não será associada a nenhum processo.
Então, o que está acontecendo é que seu sistema tem memória livre suficiente para operar de uma maneira muito eficiente, onde não desperdiça esforço, tornando desnecessária a memória livre e, então, não precisa desperdiçar esforço para liberar memória para usá-la. Em vez disso, ele pode fazer a transição de forma eficiente da memória de um uso para outro e, se os dados dessa memória forem necessários, a E / S do disco poderá ser evitada.
É uma vitória ao redor. A memória está armazenando dados que o sistema espera que alguns processos futuros possam achar úteis, e também está evitando viagens estranhas através da lista de memória livre para liberar memória apenas para marcar novamente. Os sistemas operacionais modernos precisam manter uma quantidade muito pequena de memória livre, apenas o suficiente para lidar com situações de emergência (como falhas de página e solicitações de memória do código de interrupção), onde não é possível fazer a transição da memória de um uso para outro.
fonte