Muita memória se acostumando

13

Estou me sentindo assim há algum tempo, observando mentalmente o gerente de tarefas, avaliando quanta memória física deve estar em uso e percebendo uma grande disparidade. Finalmente cheguei a medi-lo. Tomando os resultados da lista de tarefas e adicionando, deu cerca de 3,87 GB. O gerente de tarefas me disse que eu estava usando 4,6 GB de memória. Parece uma grande disparidade. Para onde foi?

EDIT: Então está claro, ele não irá pré-buscar. Também foi sugerido que faz parte do sistema operacional, mas não faz parte de nenhum dos processos do sistema. Se isso for verdade, encontre uma maneira de fazer com que o sistema operacional me diga quanta memória está sendo usada. Como quero descobrir para onde foi a memória, me pedir para observar a diferença não faz nada para mim.

EDIT 2: Não é o seguinte:

  1. O kernel
  2. O cache
  3. Memória reservada de hardware

Imagem dos recursos utilizados. Não tenho certeza do que vai fazer, mas ... insira a descrição da imagem aqui

soandos
fonte
Qual sistema operacional você está usando? Você obterá melhores respostas com mais informações :)
Cam Jackson
Desculpas ver a nova tag :)
soandos
@soandos: Você já tentou desativar o super busca e a reinicialização? Isso faz diferença?
user541686
Sim, fiz e não, não, mas também seria bom saber quanta memória a pré-busca ocupa.
soandos
2
A pré-busca NÃO usa memória, ele armazena em cache o bytecode mais usado nos aplicativos compilados. Não desative-o ou o desempenho do sistema cairá drasticamente.
Breakout

Respostas:

5

Sugiro baixar o Sysinternals Suite da Microsoft . Inclui vários utilitários que fornecerão mais informações do que o Gerenciador de Tarefas. Dê uma olhada nos utilitários Process Explorer, RAMMap, VMMap e Process Monitor. Para obter o máximo de informações deles, talvez seja necessário fazer alguma configuração para alterar as informações exibidas.

Além disso, como você está interessado na memória do Windows, aqui está uma série de postagens de blog de Mark Russinovich , um dos desenvolvedores / fundadores da Sysinternals. Isso ajudará a entender as informações fornecidas pelos utilitários.

Joe Internet
fonte
O RAMMap parece estar me dizendo que o gerenciador de tarefas está exagerando o uso total de RAM em cerca de 100 MB, mas de acordo com a lista de memória que posso extrair usando a lista de tarefas, o RAMMap também está exagerando em cerca de 200 MB (lista de tarefas +200 = RAMMap, RAMMap + 100 = taskmanger)
soandos
1
Não tenho certeza do que você está vendo, e não estou em uma máquina Windows para investigar. No entanto, se você ainda quiser aprofundar, pergunte nos fóruns da Sysinternals. Existem algumas pessoas muito inteligentes lá que são muito "internas" no Windows. Eles estarão mais familiarizados com os pontos mais delicados do gerenciamento de memória do Windows.
Joe Internet
Para referência futura, aqui está Mark Russinovich do TechEd 2011 palestras sobre gerenciamento de memória do Windows: channel9.msdn.com/Events/TechEd/NorthAmerica/...
Joe Internet
Essa "resposta", apesar de aceita, não responde à pergunta! Apenas sugere ferramentas e leitura para investigação.
Jamie Hanrahan
8

O Windows 7 usa memória 'não usada' para precache coisas e agilize as coisas. Se você precisar dessa memória, ela será liberada.

É um recurso, não um bug;)

Do technet

Depois de usar um sistema Windows Vista por um tempo, você verá um número baixo para o contador de Memória Física Livre na página Desempenho do Gerenciador de Tarefas. Isso ocorre porque o SuperFetch e o cache padrão do Windows usam toda a memória física disponível para armazenar em cache os dados do disco. Por exemplo, quando você inicializa pela primeira vez, se você executar imediatamente o Gerenciador de Tarefas, observe que o valor da Memória Livre diminui à medida que o número da Memória em Cache aumenta. Ou, se você executar um programa que consome muita memória e sair dele (qualquer um dos “otimizadores de RAM” do freeware que aloca grandes quantidades de memória e depois libera a memória funcionará), ou apenas copia um arquivo muito grande, o número Grátis será aumentará e o gráfico Uso da memória física diminuirá à medida que o sistema recuperar a memória desalocada. Com o tempo, no entanto, o SuperFetch repovoa o cache com os dados que foram forçados a ficar sem memória,

Journeyman Geek
fonte
1
1) Então, por que isso não está listado na memória para esse processo? 2) como sei que é esse o caso aqui?
Soandos
Eu acredito que o superfetch está sob svchost. PODE ser contado como memória do kernel. Você pode tentar ativar e desativar a super busca para verificar.
Journeyman Geek
Não fez nada.
soandos
A memória usada pelo Superfetch está na lista de páginas em espera e é contada como parte de "Disponível". Ele não é contado como "em uso" porque pode ser redirecionado (retirado da lista de espera e colocado em um processo), como todo o resto da lista de espera e também da lista de Free e Zero.
Jamie Hanrahan
5

Os números que você vê são totalmente imprecisos e devem ser tomados apenas como indicação.

Um sistema operacional é uma entidade extremamente complexa e um programa simplificado como o Gerenciador de Tarefas nunca pode totalizar todo o uso; muitas partes dele são simplesmente inacessíveis no modo Usuário sob o qual ele é executado. Alguns dos elementos inacessíveis a ele, ou simplesmente impossíveis de atribuir a qualquer "tarefa", são as tabelas de segmentação de hardware, alocações de memória compartilhada, memória alocada por kernel, alocações de memória de página, alocação de memória de página, memória de dispositivo e muito mais.

Você encontrará mais explicações em Como interpretar a guia Desempenho do Gerenciador de tarefas? , mas eu escolhi citar esta parte:

O que você espera de um programa que se chama "Gerenciador de Tarefas"? Não há nada chamado "tarefa" no kernel do sistema operacional - o sistema operacional possui "processos" e "threads". O DOS tinha "tarefas". O hardware da Intel possui estruturas de "tarefas", mas o sistema operacional não as utiliza porque é mais rápido fazer isso sozinho.

O Gerenciador de tarefas é um programa Windows muito antigo, tem problemas até em atribuir funções aos serviços e os números que ele mostra devem ser tomados com uma grande pitada de sal. Provavelmente, está faltando em grandes áreas da memória que ele não consegue contar ou atribuir a nenhuma "tarefa".

harrymc
fonte
Então, qual programa devo usar para descobrir isso? O gerenciador de tarefas PS tem a memória do kernel listada.
So116 soandos
1
Não existe um programa que lhe forneça TODAS as informações. O Gerenciador de Tarefas fornecerá algumas informações e uma aproximação, o Gerenciador de Dispositivos pode informar sobre a memória do dispositivo, o WinObj sobre os objetos de memória. A melhor fonte é o Monitor de Recursos, chamado na guia Desempenho do Gerenciador de Tarefas (e em outros lugares), que na verdade é a substituição moderna do Gerenciador de Tarefas.
9119 harrymc
O gerenciador de recursos fornece um número dentro de 15 do gerenciador de tarefas.
Soandos
Eles se parecem com os únicos números que você pode obter na interface do Windows. Eles não são precisos, mas são muito melhores que nada. Eles podem ser usados ​​para solucionar problemas (o que eu faço muito), mas não espere que eles incluam tudo.
harrymc
A noção de que o Gerenciador de Tarefas é um "programa Windows muito antigo" é bobagem. É atualizado com todas as versões do sistema operacional, como quase todo o resto. Quanto aos "únicos números que você pode obter", você não usou o Monitor de Desempenho?
Jamie Hanrahan
3

Como você deve ter notado, o Gerenciador de Tarefas pode fornecer uma captura instantânea simplificada de como a maioria dos aplicativos está afetando seu sistema, mas deixa muito a desejar. Se você realmente deseja cavar caches na RAM, etc., precisa entrar no Monitor de Desempenho. Vai levar algum trabalho para você construir seu conjunto de contadores de sistema para monitorar seu sistema.

Você pode chegar lá executando o compmgmt.msc ou uma pesquisa no Windows por "gerenciamento do computador" e, no lado esquerdo, verá uma árvore de desempenho na qual pode expandir e cavar.

Aqui está uma referência para algumas das ferramentas disponíveis: http://technet.microsoft.com/en-us/library/cc749249.aspx

Dustin G.
fonte
Enquanto eu vejo que é uma ferramenta muito legal, que pode fazer muitas coisas (como evidenciado pelo fato de que há uma tonelada de contadores na memória, não tenho a menor ideia do que estou procurando. Alguma idéia?
soandos
Além disso, a opção adicionar contador tende a ficar na minha tela e preciso alterar manualmente a resolução para corrigi-la (a atualização não funciona). Não é sua culpa, eu sei.
Soandos
3

A memória provavelmente está sendo usada para o kernel. Usando o Process Explorer , podemos ver uma análise muito mais detalhada da memória do sistema:

Informações sobre a memória do kernel

Aqui, destaquei a quantidade de memória em uso pelo kernel, que é WS paginada + não paginado, ou aproximadamente ~ 300 MB de memória. Isso ocorre em um sistema recém-iniciado, com apenas o navegador da web e alguns outros aplicativos abertos, embora, sob carga pesada, meu sistema doméstico interrompa facilmente 500 MB ou mesmo 700 MB de memória do kernel.

Darth Android
fonte
Eu olhei para isso, e isso não dá o suficiente. Obrigado mesmo assim.
soandos
Você está perguntando sobre a diferença entre os números de confirmação e memória física?
Darth Android
Não, estou perguntando por que, quando executo ferramentas diferentes que deveriam ter os mesmos números, recebo números diferentes.
soandos
2

@soandos, você levou em conta quanta memória o vídeo está puxando? É muito possível que o vídeo esteja puxando 0,73 GB de RAM. Você tem uma placa de vídeo decente nesta máquina? Caso contrário, ele usará a RAM assim (como eu sei). Se eu estiver errado, alguém por favor grite aqui, mas acredito que esse poderia ser o efeito do vídeo retirado da RAM.

David
fonte
Eu tenho uma Nvidia GTS 360M. Não é uma ótima placa de vídeo, mas possui um GB de memória.
soandos
Que tipo de monitor você está usando com qual resolução você está usando? Além disso, você está realizando tarefas intensivas em vídeo, como jogar em 1080p? E que tipo de RAM você usa na placa de vídeo (por exemplo, DDR1, DDR2, DDR3, DDR5)? Eu iria procurá-lo eu mesmo, mas eu tentei isso com o modelo de placa de vídeo de alguém e percebeu que eles fizeram isso com alguns tipos diferentes de RAM ...
David
De série com o computador, 1920 x 1080, não faço ideia. Existe uma maneira de apenas medir isso?
soandos
Normalmente ele dirá na embalagem, não tenho certeza. Se você conhece esse modelo exato de cartão, pode descobrir na internet. Se não for uma placa de vídeo muito poderosa (usando DDR2, DDR1) e você estiver usando 1920x1080 com um monitor grande (por exemplo, estou usando uma TV TOC Samsung 46 "como meu monitor em casa), você pode gravar uma muita memória apenas no vídeo ... Não tenho certeza se existe uma maneira de ver quanta RAM o seu vídeo está consumindo. Vou fazer algumas pesquisas no momento, porém. . Eu quero ajudá-lo tanto quanto possível.
David
Atualmente, estou verificando este programa para ver se ele pode ter o que estamos procurando. É o SiSoftware Sandra Lite 2011.2.17.47. A descrição afirma que ele faz o que estamos procurando, como quanta RAM o vídeo está consumindo.
David
1

A diferença que acho que você está vendo não é porque as ferramentas não conseguem ver a memória usada, mas sim por diferentes formas de medição. Não posso explicar isso muito bem, mas felizmente não preciso, Mark Russinovich, da Sysinternals fame, escreveu uma série muito boa de posts sobre o desempenho do processo no Windows. As partes sobre memória física e memória virtual devem explicar o que você está vendo.

Paxxi
fonte
Não, esse não é o problema. Estou mais preocupado com a quantidade total do que onde está armazenada (RAM ou HD).
soandos
0

Eu acho que resolvi isso!

Acabei de me deparar com uma dica sobre o RAMMap e acabou que é o µTorrent!

Não utorrent.exeele próprio, mas os arquivos compartilhados pelo µTorrent - pelo menos no meu caso: um dos arquivos estava usando mais de 600 MB e outro com mais de 200 MB, etc.

user184804
fonte
-1

Alguma memória é usada como cache. Assim que você precisar dessa memória, ela será automaticamente liberada. Então não precisa se preocupar.

Neel Mehta
fonte
-1 Não é o cache, pois é 1) contado separadamente, 2) facilmente contabilizado.
soandos