O que acontece quando um computador fica sem RAM?

8

Um pouco atrás, por curiosidade, escrevi um programa em Java que ocupa muita memória muito rapidamente. (Adiciona BufferedImages a um arraylist em um loop.)

Eu mantive o Monitor de Sistema do Windows aberto para observar o uso da RAM durante a execução.

Quando iniciei o programa, o uso de RAM aumentou muito rápido e, como chegou a cerca de 100% dos meus 6 GB de RAM, meu computador ficou extremamente lento. Após cerca de um minuto, consegui terminar o programa e o meu computador recuperou lentamente a velocidade. O que me chamou a atenção foi que o uso da memória caiu primeiro lentamente, então, de repente, desceu para quase 0MB antes de subir de volta para o uso inativo por volta de 2-2,5GB.

Eu tirei uma captura de tela do uso de RAM no System Monitor:

Eu queria saber se alguém poderia explicar o que acontece quando o computador fica sem memória e por que ele não volta ao modo inativo logo após o término do programa, mas cerca de 60 segundos depois? Além disso, por que o uso vai até o nada, em vez de apenas o uso ocioso?

    
por user1291510 24.06.2012 / 17:22

1 resposta

13

Quando você começa a atingir o limite da memória principal, seu sistema operacional começa a trocar a memória para o disco para liberar espaço para mais coisas (isso é chamado de paginação ). É por isso que o seu computador está ficando muito lento porque a unidade de disco é waaaay mais lenta que a RAM, mesmo se você estiver em um SSD, e é também a razão pela qual seu programa pode continuar sem memória principal .

A memória inativa costuma ser trocada primeiro para que os programas ativos possam ter o máximo possível na RAM. Esta é a razão pela qual o uso da memória fica abaixo do estado ocioso habitual. O sistema irá começar a trocar as páginas de memória novamente e a memória inativa será preenchida na RAM eventualmente.

    
por 24.06.2012 / 17:29