Coloca a árvore de pastas inteiras no cache do DDR?

1

Eu estava jogando Starcraft 2 na minha máquina com 32 GB de RAM. Eu estava pensando em como o jogo só atinge o máximo de ~ 2GB, mas ainda tem que carregar os diferentes mapas de um único jogador.

Eu vejo a estrutura da memória como "o framework base do jogo + o nível atual vai para a memória de trabalho" que inclui toda a música, sprites, etc. Quando eu carrego outro nível, recebo vários acessos do cache do framework, então várias falhas como o aplicativo vai buscar o novo nível do meu disco rígido.

A minha pergunta é se alguém sabe se há uma maneira de armazenar em cache toda a pasta do jogo, como é apenas 13GB, tornando todo e qualquer acesso a qualquer recurso relacionado ao jogo um hit de RAM-Cache e reduzindo assim o tempo de carregamento?

Eu acho que se fosse tudo na RAM (PC3-12800), a largura de banda teórica é ~ 12GByte / seg , o que tornaria todo carregamento quase instantâneo, não?

    
por IDLacrosseplayer 02.04.2013 / 06:01

3 respostas

4

Por que você não tenta instalá-lo em uma unidade RAM ou mover os arquivos para lá? Curto de engenharia reversa do programa, uma unidade ram é provavelmente o melhor caminho a percorrer. Veja mais informações de superusuário em ramdisks: link

    
por 02.04.2013 / 06:30
3

O seu sistema operacional já está fazendo exatamente o que você queria - ele armazena ativamente na RAM todos os dados que foram lidos do seu disco rígido da maneira mais usada recentemente.

Para qualquer sistema operacional que valha a pena, a memória realmente "livre" deve ser muito pequena - apenas alguns megabytes. Toda a memória restante é dedicada ao armazenamento em cache dos dados do disco. Se algum programa solicitar um grande bloco de memória usando malloc ou GlobalAlloc , dados não importantes armazenados em cache para leitura serão descartados para satisfazer essa solicitação de alocação de memória.

Uma propriedade interessante sobre esse armazenamento em cache é que mesmo se você tiver aplicativos de 32 bits que não possam alocar mais de 4 GB de RAM, os arquivos acessados por este aplicativo ainda serão armazenados em cache pelo seu sistema operacional de 64 bits, mesmo que o tamanho total de todos arquivos é bem além de 4 GB.

Em outras palavras, se você tiver 32 GB de RAM e começar a jogar o seu jogo, que pesa 13 GB, o Windows tentará armazenar ativamente todos os 13 GB na RAM. No entanto, isso não significa que ele permanecerá nesse cache para sempre, porque os dados mais prováveis são altamente compactados, e como Starcraft precisa descompactar esses dados na memória para poder manipulá-los e criar sua representação no mundo dos jogos, ele pode tentar aloque muita memória do Windows, o que pode forçá-la a jogar fora parte do conteúdo em cache (mas, mesmo assim, pelo menos de uma maneira usada recentemente).

Em uma nota prática, provavelmente a maneira mais fácil de acelerar os tempos de carregamento é usar a unidade SSD. Unidades SSD modernas normalmente têm velocidade de leitura de cerca de 500MB / s - cerca de 5x mais rápido do que o disco rígido típico. O que é melhor, a velocidade de leitura SSD não é um grande mergulho na leitura de arquivos realmente pequenos (para o disco rígido padrão, a velocidade de leitura pode ser 100x mais lenta para arquivos pequenos).

    
por 02.04.2013 / 08:08
0

Abra o FAR Manager ou o Total Commander e copie toda a pasta do StarCraft para nul. Ele será carregado na memória.

Mas eu não acho que isso vai acelerar muito o carregamento. Carregar 100 MB de alguns arquivos não é um problema. Somente se você vir que o HDD led está descarregando quase constantemente, você pode supor que o HDD está limitando seu desempenho.

    
por 27.09.2013 / 09:26