Como "trocar" novamente a memória do arquivo de paginação para a memória física no Windows de uma só vez (como troca de linux)


10

Existe uma maneira de trocar de volta (colocar de volta todos os dados de memória que foram colocados no arquivo de paginação (ou trocar, o que você preferir)) em um PC com Windows?

No linux, é possível fazer isso facilmente com o swapoff / dev / sdaX, onde X é a partição swap. No Windows, parece me pedir para reiniciar cada vez ..

A razão pela qual eu gostaria de fazer isso é que, embora a troca dos dados para o arquivo de permuta me permita jogar um jogo com muita fome de recursos completamente no RAM físico, quando eu paro o jogo, todo o resto dos meus programas são executados lento. Isso é normal ou é claro; todos os programas foram inseridos no arquivo de paginação porque minha RAM era muito pequena e todo o acesso à memória desses programas após os jogos colidir com falhas de página de hardware, com grandes atrasos e algumas frustrações como conseqüência.

No entanto, essa frustração pode ser facilmente evitada, simplesmente permitindo que o PC copie todos os dados de volta para a memória física por um minuto ou mais e, em seguida, retome o trabalho em um PC de trabalho rápido! (em vez de ter que suportar a lentidão enquanto trabalhava)

Agradecemos antecipadamente por qualquer conselho sobre isso!

Atenciosamente


O que você deseja é um "hypervisor" com várias cópias do Windows em execução. Você suspende um e suspende o outro. Isso é feito bastante com outros sistemas, mas não tenho certeza de que exista um hypervisor capaz de fazer isso no Windows.
Daniel R Hicks

Respostas:


6

Infelizmente não. Da maneira como o sistema de memória virtual do Windows funciona, muitas páginas simplesmente não podem ser mapeadas até que falhem e não possam ser armazenadas na memória, a menos que sejam mapeadas. Portanto, o Windows precisa esperar até que as páginas sejam acessadas.


Talvez algum processo de terceiros com privilégios suficientes possa tentar acessar essas páginas para que falhem?
badp

Não seria muito bom para outro processo acessar as páginas. Você precisa deles com falha nos processos dos aplicativos que você está tentando usar.
21714 Jamie Hanrahan

Venha para pensar sobre isso, poderia ser feito ... mais ou menos. Você precisaria injetar um thread remoto no processo de destino. Esse encadeamento executaria o VirtualQuery no espaço de endereço e, em seguida, simplesmente leria todas as páginas privadas do processo. No entanto, não há como distinguir entre as páginas que estavam na RAM e foram paginadas mais tarde do que as páginas que nunca foram paginadas em primeiro lugar. Também não haveria maneira de identificar as páginas que o processo nunca mais precisará. Então, você paginaria muitas coisas que não precisava.
21815 Jamie Hanrahan #

@JamieHanrahan Parece que isso funcionaria.
David Schwartz

1

Infelizmente não existe essa opção.

A única maneira de diminuir a troca no Windows é aumentar a RAM física.


Ou desative a troca completamente. Não necessariamente uma coisa do Windows, mas nas minhas máquinas Linux / BSD, desabilito qualquer forma de troca rotacional porque não adianta, e quando as coisas começam a usá-la, em vez de atingir um limite rígido, elas diminuem a velocidade.
Killermist

1
Desabilitar o arquivo de paginação não desabilitará a paginação no disco. Desabilitará apenas a saída de página do espaço de endereço confirmado privado. O conteúdo do arquivo mapeado na memória ainda será paginado dentro e fora.
9788 Jamie Hanrahan #
Ao utilizar nosso site, você reconhece que leu e compreendeu nossa Política de Cookies e nossa Política de Privacidade.
Licensed under cc by-sa 3.0 with attribution required.