Skip to content

Instantly share code, notes, and snippets.

Show Gist options
  • Star 1 You must be signed in to star a gist
  • Fork 0 You must be signed in to fork a gist
  • Save paulera/9308558b3c60485c5030 to your computer and use it in GitHub Desktop.
Save paulera/9308558b3c60485c5030 to your computer and use it in GitHub Desktop.
Truque pra melhorar a performance de programas, alocando pastas inteiras na memória RAM e deixando um link simbólico no lugar. Essas instruções são para windows mas é possível fazer no linux também. Eu uso para o Eclipse mas serve pra qualquer programa.
É mãozada forte, mantenha backup de todos os arquivos envolvidos! Sério, chorei e quebrei meu Eclipse várias vezes
até aprender a fazer isso que nem gente. Agora virou rotina.
Basicamente eu coloco os arquivos mais acessados pelo programa em uma uma unidade virtual montada na memória RAM
(ao invés de usar parte do HD), que chega a uma transferência de mais de 2GB/s. O nome disso é "ramdisk" pra quem
quiser buscar no Google. Aqui tem um PDF explicando como fazer, com um benchmark comparando a performance:
http://paulera.insomnia247.nl/docs/ramdisk.pdf - Obviamente, estamos abrindo mão de um teco da memória, então é bom
ter de sobra.
TL;DR: Eu uso um script para isso, basta rodar um prompt como admin, e executar a BAT passando
a pasta desejada: https://github.com/paulera/commands-common/blob/master/ramdisk.bat - mas não vá sair usando nos
arquivos do trabalho logo de primeira, precisa saber o que está fazendo.
Para saber quais são os arquivos acessados na execução eu uso o ProcessActivityView
(http://www.nirsoft.net/utils/process_activity_view.html). Inicio meu programa através dele (File -> Start new process)
e deixo monitorando por uns minutos enquanto uso normalmente. Depois eu ordeno por "Bytes read" e anoto quais são
os diretórios lidos com maior frequência. São eles que eu quero tirar do HD.
Sabendo quais são essas pastas, eu monto o ramdisk, copio a(s) pasta(s) para ele e no lugar original deixo um link
simbólico. Dessa forma o windows continua buscando arquivos no mesmo lugar, mas no fim eles estão no ramdisk ao invés
do hd. O comando pra isso no windows é:
mklink /J local-original pasta-no-ramdisk
Como o ramdisk fica na memória e é perdido no boot (ou crash), ao invés de simplesmente mover os arquivos pro disco
virtual e deixar um link no local original, eu deixo uma cópia da pasta original terminando com a extensão ".bkp" e
mantenho ela atualizada através do comando (que não está no PDF)
robocopy caminho-da-pasta-no-ramdisk pasta-original.bkp /MIR /Z /W:5 /njh /njs /xj /MOT:1
Isso vai fazer com que toda vez que algo seja alterado na ramdisk, seja espelhado nessa pasta de backup.
No caso do eclipse, as pastas mais acessadas são:
* eclipse/configurations
* eclipse/plugins
* workspace/.metadata <- muito cuidado com essa, sempre tenha um bom backup feito fora o do ROBOCOPY. Se ela corromper,
já era seu workspace.
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment