Last active
March 7, 2016 10:32
-
-
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.
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
É 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