O mais básico de resposta? Não. O sistema operacional lida com o gerenciamento de memória para o usuário - dando a um processo a quantidade de memória necessária, já que a solicita, e não fornece muito em termos de poder modificar a forma como o sistema executa. Não ajuda muito tentar descobrir se a utilização da memória faz parte da equação de por que 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 a razão pela qual você está tendo problemas de desempenho - o mais básico é usar vm_stat
ou use siga 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 menor do que recuperar as páginas do disco rígido para a sua RAM. Uma página nos termos do OS X refere-se a 4kb de dados.
Além disso, os processos de 32 bits (por exemplo, Illustrator) não podem acessar mais de 4 GB, portanto, é possível ter 2 GB livres e um processo ficar sem memória se você tiver 6 GB instalados.
Em sua área de trabalho e nos servidores, eu executaria vm_stat 2
e verificaria a última coluna - especialmente quando você experimenta o atraso de vários segundos ao alternar para o Illustrator.
Para descobrir 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
.
Usar 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 um sleepimage
do tamanho da quantidade de memória instalada.
Jargão de memória do Mac OS X:
Wired : refere-se ao código do kernel e tal. Memória que nunca deve ser removida da RAM. Também conhecido como memória residente.
Compartilhada : 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 que está realmente em uso.
Real : Este é 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)
Privado : Esta é a memória que um processo está usando somente por si próprio e que é usado na memória de residentes. (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 na RAM.
Inativo : "A memória inativa não está mais sendo usada e armazenada em cache no disco. Ela permanecerá na RAM até que outro aplicativo precise de espaço. A saída dessas informações na RAM é vantajosa se você (ou um cliente do seu computador) voltar a ele mais tarde ". - Ajuda do Mac OS X
Grátis : A quantidade de RAM realmente disponível sem nenhum dado.
A melhor documentação que conheço (e que pude encontrar em pesquisas de acompanhamento) é a própria da Apple Gerenciando a memória no site do desenvolvedor.
Outras fontes válidas: lista de discussão do Darwin-dev: [ 1 ] , [ 2 ] e um artigo antigo em MacOSXHints . Além disso, Mike Ash postou uma boa introdução de leigos em sua blog
Pode ser possível (eu não tentei) desativar o sistema de memória virtual executando sudo launchctl unload /System/Library/LaunchDaemons/com.apple.dynamic_pager.plist
e, em seguida, reiniciando para que o dynamic_pager (o programa que realmente faz a alocação de memória virtual) não inicialize. No entanto, como o sistema operacional pressupõe que tenha memória virtual, você pode se deparar com problemas muito rapidamente. Para carregá-lo, execute sudo launchctl load /System/Library/LaunchDaemons/com.apple.dynamic_pager.plist
(se necessário, no modo de usuário único)