Encontrando fonte de vazamento de memória ativa no Mac OS Lion [duplicado]

0

Meu monitor de atividades mostra 6 GB de uso de RAM ativo:

Noentanto,minhacolunadememóriarealnãomostranadaparecidocomessaquantia:

(Há outro screenful abaixo disso, todos menores.)

Fazendo backup, a saída desse comando (que resume o uso de memória de cada processo em execução):

ps -axm -o "rss,comm" | awk 'BEGIN { s=0;}; {s=s+$1;}; END { printf("%.2f GB\n", (s/1024.0/1024));}'

4.09GB , então parece que 2GB vazaram. Às vezes, vejo intervalos muito mais amplos, talvez 2 ou 3 GB do comando ps e até 7 ou 8 GB de uso ativo relatado pelo Activity Monitor.

Eu tentei sair de tudo e desconectar meu usuário e voltar, mas o uso Ativo ainda é muito maior do que a RAM relatada por ps e por cada processo no Activity Monitor. Este 2GB de RAM ativa é basicamente irrecuperável a menos que eu reinicie. Existe alguma maneira de a) detectar o que está vazando e b) recuperá-lo?

Obrigado

    
por Tim Kemp 29.11.2012 / 18:02

1 resposta

0

Não vazou, não vale a pena o esforço de torná-lo livre. Seu sistema não é restrito por memória, portanto ter mais memória livre não traria nenhum benefício. Se o sistema o torna livre, as probabilidades são de que ele nunca se acostumará (nesse caso, tornando-se livre foi um esforço desperdiçado) ou apenas se acostumar novamente (nesse caso, liberá-lo foi um esforço desperdiçado).

A memória livre é necessária apenas em um conjunto muito limitado de circunstâncias. E o seu sistema tem memória livre mais que suficiente para lidar com isso.

Veja esta resposta para obter uma explicação mais detalhada sobre o motivo pelo qual você deseja ter o mínimo de RAM livre possível. Particularmente esta parte:

You must be thinking "I want free RAM so I can use it later". But now is later than it was before. And if you use it now, you can also use it later. All that happens if you don't use it now is that you forever lose the opportunity to use it now. Later never comes -- it's always now. Use the RAM now. Don't save it for later because then later you'll want to save it for later too.

It's not like [on a machine with 8GB] if you use 4GB now you can use 12GB later. If you use 7GB now, all that happens it that 1GB went to waste. You want as little free RAM as possible so your system can get the most benefit from the RAM you have. You can't save RAM. The opportunity to use that RAM now must be used now or it's forever lost.

Além disso, veja esta resposta para saber mais sobre as especificidades da "memória ativa" no OSX.

    
por 29.11.2012 / 18:19