O mais básico de resposta? Não. O sistema operacional lida com o gerenciamento de memória para o usuário - fornecendo ao processo a quantidade de memória necessária e solicitando e não fornece muito em termos de poder modificar o desempenho do sistema. Não ajuda muito tentar descobrir se a utilização da memória faz parte da equação do motivo pelo qual os servidores Linux estão superando os servidores Mac.
Devido à falta de "hackability" no sistema de memória virtual, suas melhores opções são avaliar o desempenho da memória virtual para ver se é realmente o motivo pelo qual você está tendo problemas de desempenho - o mais básico é usá-lo vm_stat
ou segui-lo ao vivo usando vm_stat [number of seconds]
para ver quantas páginas estão ocorrendo. Mover páginas não utilizadas da RAM para o disco rígido tem um custo muito mais baixo do que recuperar as páginas do disco rígido para a RAM. Uma página nos termos do OS X refere-se a 4kb de dados.
Além disso, processos de 32 bits (por exemplo, Illustrator) não podem acessar mais de 4 GB; portanto, é teoricamente possível ter 2 GB livres e um processo ficar sem memória se você tiver 6 GB instalados.
Tanto na área de trabalho quanto nos servidores, eu executaria vm_stat 2
e verificaria a última coluna - especialmente quando ocorrer um atraso de vários segundos ao mudar para o Illustrator.
Para descobrir qual o tamanho real da troca, você pode verificar o tamanho da troca no Activity Monitor ou executar du -shc /var/vm/swap* | tail -n 1
.
O uso du -sh /var/vm
tem uma ressalva: em laptops que têm o modo de hibernação (qualquer coisa nos últimos 4 anos ou mais recentes), pode haver sleepimage
aproximadamente o tamanho de quanta memória você instalou.
Jargão de memória do Mac OS X:
Com fio : refere-se ao código do kernel e tal. Memória que nunca deve ser removida da RAM. Também conhecida como memória residente.
Shared : Memória compartilhada entre dois ou mais processos. Ambos os processos mostrariam essa quantidade de memória, de modo que pode ser um pouco enganador quanto à quantidade de memória realmente usada.
Real : esse é o uso de memória "real" para um aplicativo, conforme relatado por task_info () - uma contagem aproximada do número de páginas físicas que o processo atual possui. (RSIZE)
Privada : é a memória que um processo está usando por si só e usada na memória residente. (RPRVT)
Virtual : a quantidade total de espaço de endereço no processo mapeado para qualquer coisa - seja um espaço arbitrariamente grande para variáveis ou qualquer coisa - não equivale ao uso real da VM. (VSIZE)
Ativo : Memória atualmente rotulada como ativa e é usada RAM.
Inativo : "A memória inativa não está mais sendo usada e foi armazenada em cache no disco. Ela permanecerá na RAM até que outro aplicativo precise do espaço. Deixar essas informações na RAM é vantajosa se você (ou um cliente do seu computador) voltar mais tarde. " - Ajuda do Mac OS X
Livre : a quantidade de RAM realmente disponível sem nenhum dado.
A melhor documentação que eu conheço (e consegui encontrar na pesquisa de acompanhamento) é o artigo de gerenciamento de memória da Apple no site do desenvolvedor.
Outras fontes que valem a pena: lista de discussão de Darwin-dev: [ 1 ], [ 2 ] e um artigo antigo no MacOSXHints . Além disso, Mike Ash publicou uma introdução de um bom leigo em seu blog
Pode ser possível (eu ainda não tentei) desativar o sistema de memória virtual executando sudo launchctl unload /System/Library/LaunchDaemons/com.apple.dynamic_pager.plist
e reiniciando para que dynamic_pager (o programa que realmente faz a alocação de memória virtual) não seja iniciado. No entanto, como o sistema operacional pressupõe que ele possui memória virtual, você pode se deparar com problemas muito, muito rapidamente. Para carregá-lo novamente, execute sudo launchctl load /System/Library/LaunchDaemons/com.apple.dynamic_pager.plist
(se necessário no modo de usuário único)