2013/05/01

Como Mudar a Cache do Chrome para Outro Drive


A inexistência de uma opção para facilmente configurar o local e tamanho da cache do Chrome é uma daquelas coisas que me irrita profundamente. Embora a maioria dos utilizadores nem queira saber o que isso é, para outros utilizadores é essencial (ou no mínimo, desejável) ter este controlo. Por exemplo, no caso de utilizadores que desejem poupar um pouco o seu disco ou SSD (tanto por efeitos de fragmentação, como de longevidade, como até por falta de espaço no disco principal).

No meu, a "mania" das optimizações faz com que eu prefira atirar este tipo de conteúdos temporários para um RAM Drive. Não há SSD que lhe chegue... e como se tratam de dados temporários, não me chateia que desapareçam caso haja algum encerramento imprevisto (embora o software que eu use faça a gravação dos dados da RAM Drive para o disco no shutdown, e os recupere quando se reinicie o sistema).


Até há pouco tempo tinha feito uma "batota" usando umas opções no arranque do Chrome:
  • "C:\Program Files (x86)\Google\Chrome\Application\chrome.exe" –disk-cache-dir=”r:\Chrome” –disk-cache-size=512000000

Isto fazia com que o Chrome usasse uma pasta temporário no drive R: (o meu Ram Drive) com um tamanho máximo de 512MB. (Há mais umas batotas envolvidas, de meter isto no registo do Windows de forma a que fizesse efeito mesmo quando o Chrome fosse arrancado automaticamente sem ser pelo clique no icon... mas... já percebem a ideia).

O problema é que de há uns tempos para cá, o Chrome deixou de reconhecer estas opções... e eu fui deixando andar, até me fartar e voltar a enfrentar o problema.


Como mudar a localização da pasta de cache do Chrome?

Desta vez não estive com meias medidas... e optei por enganar o Chrome. O windows, assim como outros sistemas operativos (ou melhor dizendo, os seus filesystems) permite que se criem pastas que funcionam como atalhos para outras localizações.

Ou seja, podemos dizer que a pasta "C:\pasta" aponta na realidade para o local "D:\nova pasta".

Para todos os programas, o "C:\pasta" continua a aparecer como se fosse real, mas na verdade os dados estão no local de destino.



Portanto, trata-se de aplicar este conceito à pasta do Chrome, deixando-o pensar que está no sítio de instalação que ele gosta... mas na realidade ficará onde nós quisermos.

Para isso têm primeiro que ir até à pasta da cache do Chrome, que por norma está em:
  • C:\Users\<nome do utilizador>\AppData\Local\Google\Chrome\User Data\Default\Cache\

(Tenho o meu Windows em inglês... nas versões em português terão que adaptar a coisa um pouco.)

Podem navegar até lá usando o Explorador de ficheiros do windows, e quando a encontrarem, mudem o seu nome para algo temporário, como "CacheTEMP". Atenção: deverão ter o Chrome encerrado!


Agora temos que dar um salto à linha de comandos, para fazer a tal operação de "transferência" da pasta de um local para o outro; mas temos que a iniciar em modo de administrador. Podem fazê-lo pesquisando por "cmd" no Start do Windows, mas depois executarem-na pressionando em CTRL+SHIFT+ENTER em vez do simples ENTER. No topo da janela de comando deverá aparecer a indicação de Administrador.


Depois é só dar uso ao comando: mklink
O princípio de funcionamento é simples: mklink /d "endereço de origem" "endereço de destino". (A opção /d significa que queremos fazer a ligação de uma pasta - o comando mklink pode ser usado para outros tipos de ligações).

Portanto, na janela teremos que escrever algo como:
  • mklink /d "C:\Users\<user name>\AppData\Local\Google\Chrome\User Data\Default\Cache\" "R:\cache"

Ter atenção para que não se enganem a escrever, com particular cuidade nos espaços, aspas, e sem esquecer a barra final na parte da origem mas não na parte do destino.

Se tudo correr bem, a pasta da cache do Chrome passará agora a surgir com uma "setinha" como se fosse um atalho.


Tal como foi dito, se a abrirem (neste momento não terão lá nada para ver)... mas se copiarem qualquer coisa para a pasta de destino (r:\cache - ou outra à vossa escolha), verão que aparecerá aqui também.

Ou seja... missão concluída. Quando o Chrome pensar que está a gravar os ficheiros temporários para o local habitual, estará na realidade a gravá-los para onde nos bem entendermos. Resta-nos apagar a pasta temporária de backup que criamos (CacheTEMP) para que não fiquem "restos" de ficheiros esquecidos no disco, e pronto.

Agora só fica por resolver a definição do tamanho máximo da cache... mas isso fica para outro dia.


P.S. Teria sido assim tão difícil ao Google adicionar estas opções de configuração do local e tamanho da cache no Chrome, algures numa secção avançada, e poupar-nos todo este trabalho?

15 comentários:

  1. Porque alterou o nome da pasta para "CacheTEMP" mas depois essa alteração não se encontra evidenciada no comando mklink?

    Cumps

    ResponderEliminar
    Respostas
    1. Foi feito apenas para efeito de backup, já que terias que eliminar a pasta original para depois fazer a pasta "virtual" no mklink.

      Eliminar
    2. Ok, obrigado. Isso é um requisito do mklink? Não conheço o comando, é equivalente ao ln em Linux correcto?

      Eliminar
    3. Mais ou menos equivalente. Infelizmente, apesar de décadas de diferença - para menos do que para mais.

      @braço.

      Eliminar
  2. Hum, muito estranho não terem aparecido alguns (e)XP(erts) a perguntar onde fica C:\Users...

    Hum, hum e a tua batota apontar para C:\Program Files...

    Hum, hum, hum e technet mklink - "Aplica-se a: Windows Server 2008, Windows Vista"...
    http://technet.microsoft.com/pt-pt/library/cc753194(v=ws.10).aspx

    Time lapses :-)

    @braço.

    ResponderEliminar
  3. Bem e já agora peso que depois deste trabalho todo até se pode apagar a pasta com o cache antigo (CacheTemp, para quem seguiu o truque à letra), né?

    Nuno

    ResponderEliminar
  4. Boas Carlos. Qual o software de RamDrive que usas?
    Thanks

    ResponderEliminar
  5. Olá Carlos,

    Preciso transferir apenas o arquivo "Bookmarks" para outra partição do HDD, ou seja,
    de "c:\Users\Usuario\AppData\Local\Google\Chrome\User Data\Default\Bookmarks"
    para "d:\Usuario\Chrome\Bookmarks".
    O comando mklink permite fazer isto? Se sim, como ficaria o comando?
    Grato pela atenção,

    Alberto

    ResponderEliminar
    Respostas
    1. mklink /d "c:\Users\Usuario\AppData\Local\Google\Chrome\User Data\Default\Bookmarks" "d:\Usuario\Chrome\Bookmarks"

      Eliminar
  6. Você é o cara mano!!! Procurei um monte de site e só encontrei a solução aqui!!! Obrigado pela informação!!! Este comando "mklink" salvou meu SSD!!!

    ResponderEliminar
  7. Obrigado pela dica Carlos!

    Eu gostaria de saber como aumentar o cache do Chrome, ja que a antiga forma

    nao funciona mais, que voce ficou devendo! ;)

    Tenho uma dica para este teu post:
    Eu reparei que o Chrome tambem usa arquivos .tmp nas pastas User Data e

    User Data\Default...
    Vejo isso pelo antivirus Avira que sempre checa estes .tmp, embora eles nunca

    aparecam dentro da pasta no Windows Explorer quando eu os pesquiso... Com

    isso eu mudei, ao invez da pasta Cache, toda a pasta User Date para o

    RAMDrive... E ja ajudou a ficar um pouco mais rapido! Ate mesmo porque o

    Chrome, com alguma frequencia, acessa e grava arquivos nesta pasta alem dos .temp e o antivirus vai la checa-los...

    Abracos!

    ResponderEliminar
  8. É uma dica válida mas trava o pc de vez em quando.

    ResponderEliminar
  9. hahaha logo em 2013 usei essa dica pro navegador opera, dai acabei me esquecendo do comando "mklink"
    entao ontem baixei uma versão do photoshop cc que não instala no drive "D"
    tive que voltar aki pra relembrar, 3 anos depois... srrssr vlew man!

    ResponderEliminar