Não sei se é só a mim que acontece, mas tenho uma relação amor / ódio em relação ao Firefox. Por um lado acho fantástico o novo motor tracemonkey que processa javascript a uma velocidade alucinante. Por outro incomoda-me a degradação de performance à medida que os dados começam a ser armazenados em cache e toda a informação de navegação é guardada na base de dados interna do Firefox. Mas há solução para este problema ?
Resposta curta e rápida, sim! Comecemos por explicar a causa do problema. O Firefox usa um mini sistema de gestão de base de dados denominada SQLite. O SQLite tem a vantagem de ser totalmente desenvolvido em C++ conferindo-lhe uma elevada rapidez para pequenas aplicações. Contudo, a complexidade do Firefox começa a ser cada vez maior, levando este gestor de base de dados ao seu limite de performance.
Basicamente quando toda a sua informação como bookmarks, histórico, informação utilizada por plugins, é armazenada através de manipulação de registos de base de dados no SQLite, as várias inserções e remoções de informação deixam a base de dados com espaço não redimensionado (geralmente com espaço a mais) e a informação fica fragmentada.
O SQLite para esse aspecto tem uma função “Vacuum” (Aspirador), que permite reajustar o tamanho da base de dados e desfragmentar toda a sua informação. A boa notícia é que podemos aplicar esta função à base de dados de sqlite do Firefox.
Usando o Ubuntu como referência (embora tudo indica que possa funcionar em todas as outras distribuições de linux ou mesmo na linha de comandos MSDOS de Windows), precisa de instalar dos repositórios o sqlite. Para isso e como irá necessitar de usar a consola neste processo, pode instalar o sqlite da seguinte forma (lembre-se que pode fazer isto de uma forma visual e intuitiva através do gestor de pacotes Synaptic)
sudo apt-get install sqlite
Depois de instalar o sqlite, feche o Firefox e / ou qualquer processo a ele associado. Navegue de seguida até à pasta pessoal onde mantém toda a informação da base de dados SQLite do Firefox, através do seguinte comando:
cd ~/.mozilla/firefox/”numero_aleatorio”.default
Substitua “numero_aleatorio” pela referencia à sua pasta.default. Caso lhe faça alguma confusão escrever manualmente o número aleatório, pode depois da barra a seguir ao Firefox carregar na tecla “Tab” para poder completar o comando.
No meu caso por exemplo escrevi: (a sua designação será diferente)
cd ~/.mozilla/firefox/3b9xuz5m.default
A partir daqui o processo mais simples é copiar e colar o seguinte script na consola e esperar que termine.
for i in *.sqlite; do sqlite3 $i vacuum; done
Espere agora pacientemente pela conclusão do processo cujo o tempo de demora, poderá ir de alguns segundos até uns minutos dependendo da sua máquina. Uma vez terminado o procedimento anterior, feche a consola e lance o Firefox e tire partido numa maior rapidez nomeadamente no Firefox na gestão de cache e outros dados offline. A diferença na minha máquina foi notória, dependendo de outras máquinas o resultado pode nem sempre ser tão perceptível.