Como controlar o uso de RAM / troca

18

Existe uma maneira (aplicativo) para controlar a política de uso de RAM / troca no nível do aplicativo.

Eu tenho alguns aplicativos que eu uso o tempo todo e eu quero que eles fiquem na RAM o tempo todo e há também aplicativos que eu uso muito raramente e eles podem ser jogados para trocar na demanda. Eu sei que o padrão configurado windows deve me dar melhor desempenho, mas quero verificar se posso obter mais:).

Eu uso o windows 7.

    
por Darqer 24.01.2011 / 15:18

4 respostas

9

Sim existe: peça ao programa que chame o VirtualLock função:

Pages that a process has locked remain in physical memory until the process unlocks them or terminates. These pages are guaranteed not to be written to the pagefile while they are locked.

Acredito que a função SetProcessWorkingSetSize também pode ser útil.

Para as pessoas que pensam que sou herege, mesmo sugerindo que isso pode ser útil:

Observe que existem motivos válidos para bloquear páginas na memória. Um motivo válido pode ser o fato de o usuário estar executando um gravador de CD, e o gravador de CD sai constantemente da página e, portanto, causa um estouro de buffer, criando uma base. Nessa situação, seria válido bloquear os buffers de memória para que eles não sejam paginados, mesmo que isso signifique que o restante do computador fique lento, porque isso ainda é melhor do que dar ao usuário uma porta-base. Pode haver outras razões válidas também - meu ponto é, embora não seja recomendado o bloqueio de páginas na memória, situações válidas ainda existem, e eu não acho que matar a idéia ajudaria o OP aqui .

Atualização: dê uma olhada na opção de menu Reduce Working Set do Process Hacker .

    
por 19.03.2011 / 05:42
5

A única maneira que encontrei é desativar o arquivo de paginação. No entanto, não é uma solução perfeita: você receberá mensagens de erro se ultrapassar ou ultrapassar o limite de RAM, e poderá não salvar os despejos de memória adequadamente, por isso, ative-a novamente se precisar solucionar problemas. Além disso, tenho usado o Win7 sem arquivo de paginação por meses sem problemas.

Minha experiência: Eu tive esse problema com um software de piano (uso de 1GB de RAM) que seria jogado em swap depois de não ser usado por um tempo. Tocar uma tecla de piano algumas horas depois resultaria em uma confusão brusca, já que a troca não seria recarregada rápido o suficiente para o som tocar. (Eu colocaria todo o meu braço em cada tecla para forçar uma recarga!)

Se a RAM é uma preocupação, sugiro que compre mais (por exemplo, 8 a 12 GB com o Windows 7 x64). Para a RAM consciente, ter plently RAM é uma dádiva de Deus.

Mas antes, você deve considerar comprar uma unidade SSD e colocar sua troca nela. Isso acelerará muito a recuperação de swap, além de oferecer muitos outros benefícios do sistema. A RAM não fornece benefícios quando não está em uso.

    
por 24.01.2011 / 19:14
2

O uso do arquivo de paginação depende de muitos fatores. Se você usa muitos programas e não tem RAM suficiente para todos eles ao mesmo tempo, partes deles (ou todas) podem ser trocadas para o arquivo de paginação.

Se você tem 4 GB de RAM e digamos que cerca de 3 GB estão disponíveis devido a placas de vídeo e outros usuários de recursos bloqueando partes de 4 GB, e você usa apenas alguns programas que não ocupam muita memória Teoricamente, você nunca deve precisar de um arquivo de troca. No entanto, o Windows Vista e o 7 são notoriamente agressivos em sua troca de programas para o disco.

Eu costumava ter uma configuração que reduzia a permuta do Windows 7 (swappiness é um termo do Linux, mas também se aplica ao Windows e, como há uma configuração de registro para domar a agressividade do Windows, parece que a Microsoft concorda de má vontade, embora de uma maneira bem escondida), mas não consigo mais encontrá-lo. Procurar por isso é como acabei aqui. A melhor alternativa para essa configuração que eu encontrei é certificar-se de que você use um arquivo de troca de tamanho fixo (eu ir para 4096-4096 em sistemas operacionais de 32 bits e 12 GB em 64 bits como eu tenho 6 GB de RAM do sistema) em uma partição dedicada. Tendo uma unidade de 200GB de 7200rpm sobressalente, eu coloco todas as minhas partições de troca (Windows XP, 7, 7 64-bit e vários Linuxes) nesta unidade. Parece funcionar para mim, mas YMMV.

    
por 19.03.2011 / 05:29
1

Vale a pena mencionar: quando o Windows detecta que você está usando certos aplicativos com frequência, ele faz com que o superfetch coloque esses aplicativos na memória para que eles sejam carregados mais rapidamente. Eu acho que as janelas de confiança para fazer a sua coisa aqui.

    
por 19.03.2011 / 05:45