Linux – Aspire o seu Firefox para maior performance
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.
Este artigo tem mais de um ano
Boa tarde.
Curiosamente ontem andei à procura de uma ferramenta destas e encontrei o IniFox.
pois mas pelo que sei esse pequeno script só funciona em windows. Este aqui é para Linux 😉
Sim, eu vi.
Mas como referes que “…embora tudo indica que possa funcionar em todas as outras distribuições de linux ou mesmo na linha de comandos MSDOS de Windows) pode haver outros utilizadores com Windows, como eu, que gostem de saber que têm esse script à disposição.
Boas. Um abraço e voto de continuação de bom trabalho.
sim sim, eu percebi! 🙂 Obrigado pela tua contribuição positiva para o artigo 😉
Fiz e não notei nada de especial. Mas obrigado pela dica.
Postem a mesma solução em Windows se possível 😉
É realmente chata a “lentidão” que as vezes atinge, talvez por usar uma quantidade de bookmarks considerável, ou abrir algumas tabs a mais..
Bom post 😉
É possível também utilizar a opção Vaccum do sqlite no Windows. Eu testei e resultou perfeitamente. Podes ver aqui como fiz: http://www.euricoleite.com/como-arrancar-o-firefox-mais-rapidamente.php
Estava mesmo a precisar de uma coisa como esta, que o meu FF já andava lento como tudo. Melhorou MUITO a performance deste!
Obrigado por este grande, mas mesmo grande, artigo!
apagando essa pasta do profile ele não cria uma nova como se tivessemos instalado de novo o Firefox?
se assim for dá menos trabalho 🙂 e a informação que se perde pode não ser importante para muita gente… no meu caso os bookmarks estão sincronizados e os plugins que uso facilmente se instalam.
Pois não não é importante 🙂
Só perdes as configuração dos teus plugins, como tal tens de os instalar de novo 😉 Se tiveres 5 ou 6 plugins então é fácil e rápido instalá-los (mais as configurações a eles associados) ?
Claro que esta é uma solução mais fácil e segura. 🙂
Bom trabalho, estas pequenas coisas são muito úteis.
Primeira vez que aqui estou a comentar este site que não tento perder nenhuma das grandes ajudas e novidades.
Aqui vai a minha questão:
Este comando sqlite está associado ao sqlite3? Pois instalei o sqlite3 segundo um site que li agora não me recordo, e julgo que tambem se tratava do firefox…
Eu ja tinha usado o IniFox à uns tempos e a base de dados passou de 39MB para 27MB, lentidão não tinha a arrancar por isso não notei maior rapidez. Em todo o caso também tenho o historico para guardar apenas 10 dias.
Cumps.
IniFox = incrível.
Grande diferença mesmo no arranque do firefox com sessão de várias tabs para restaurar.
Excelente!
Interessante 😀
Testei e só fez uma redução de 5MB (50MB -> 45MB na directoria firefox) mas de qualquer forma mostra que havia lixo que já não fazia falta.
Encontrei uma solução melhor para windows (testei no FF3.5)!
O 2º passo é o mesmo explicado neste artigo (só que no artigo é para linux).
Experimentem ir as opções de Internet do Internet Explorer e logo no primeiro separador tem áreas onde se pode apagar todos os ficheiros temporários (fruto da navegação na internet) e onde também se pode apagar o histórico. Apaguem ambos! (se quiserem deixem uns poucos dias para trás de histórico).
De seguida vem o Inifox.
Download: http://files.getdropbox.com/u/1113424/IniFox_en.zip
Descompactar os ficheiros para:
->Windows XP: C:\Documents and Settings\[username]\Application Data\Mozilla\Firefox\Profiles\[randomcharacters.default]
->Windows Vista: C:\Users\[username]\AppData\Roaming\Mozilla\Firefox\Profiles\[randomcharacters.default]
->Windows 7: C:\Users\[username]\AppData\Roaming\Mozilla\Firefox\Profiles\[randomcharacters.default]
(Application Data, em sistemas em tugues pode ser algo como Dados da Aplicação)
Correr o IniFox.bat (2 cliques em cima e esperar que a janela DOS se feixe, pode demorar um pouco).
Por fim correr o FF e provavelmente notarão uma enorme diferença. No meu caso passou a iniciar tão rapidamente como o opera ou chrome.
Podem ainda ver este tutorial (para qualquer Sistema Operativo):
http://www.ghacks.net/2009/07/11/speed-up-firefox-by-limiting-the-history/
———————————————–
A explicação é a seguinte:
Aparentemente o FF3.5 utiliza a mesma pasta de ficheiros temporários da navegação na Internet do Internet Explorer, estando sempre a acumular cada vez mais lixo. Ao iniciar, este demora porque tem que verificar/carregar os ficheiros temporários e o enorme histórico que vai mantendo. Aparentemente isto é fruto de um bug existente no FF, que já se encontra reportado e o qual se espera que seja resolvido já na próxima release (provavelmente daqui a poucos dias ou semanas).
PS: se quiserem fazer um artigo com esta informação, estejam à vontade! 😉
esqueci-me de dizer que não convém terem o Firefox aberto.
Esses comandos , no ubuntu 9.04, não funcionaram.
Pesquisando achei isso:
http://ubuntuforum-pt.org/index.php?topic=38845.0
t+
Aumento de performance a abrir não notei qualquer ganho, agora a barra de endereços aumentou consideravelmente a performance: enquanto que anteriormente para escrever um endereço, a barra ficava “bloqueada” 2 ou 3 segundos, agora é instantâneo!
(eu guardo o histórico por 90 dias, daí a barra ter bastantes endereços para consultar 😀 )
e já agora para MAC é só abrir o terminal e escrever
cd ~/Library/Application\ Support/Firefox/Profiles/
for f in */*.sqlite; do sqlite3 $f ‘VACUUM;’; done
No meu caso o VACUUM não podia levar aspas
for f in */*.sqlite; do sqlite3 $f VACUUM; done
Apesar de ter notado umas melhoras, não foi nada de especial. Sempre é melhor que nada. 🙂
Já era tempo desta gente da informática saber escrever português!
O título em português seria:
Linux – Aspire o seu Firefox para um maior desempenho
Performance é um termo francês que os ingleses adoptaram.
Depois de falado soa muito melhor desempenho do que performance.
Para linux pode se usar o seguinte script para automatizar o processo:
#!/bin/bash
cd ~/.mozilla/firefox/*.default;
for i in *.sqlite; do sqlite3 $i vacuum; done;