Linux – Aspire o seu Firefox para maior performance

23 Comentários

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.

Autor: Pplware
Partilhar:

Comentários

23

Deixe um comentário

O seu endereço de email não será publicado. Campos obrigatórios marcados com *

  1. Avatar de Caiano Silvestre

    Boa tarde.
    Curiosamente ontem andei à procura de uma ferramenta destas e encontrei o IniFox.

    1. Avatar de Rui Oliveira

      pois mas pelo que sei esse pequeno script só funciona em windows. Este aqui é para Linux 😉

      1. Avatar de Caiano Silvestre

        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.

        1. Avatar de Rui Oliveira

          sim sim, eu percebi! 🙂 Obrigado pela tua contribuição positiva para o artigo 😉

    2. Avatar de viperbruno
      viperbruno

      Fiz e não notei nada de especial. Mas obrigado pela dica.

  2. Avatar de BiteZero
    BiteZero

    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 😉

    1. Avatar de Eurico Leite

      É 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

  3. Avatar de Red_Acid
    Red_Acid

    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!

  4. Avatar de OmeuNOME
    OmeuNOME

    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.

    1. Avatar de Rui Oliveira

      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. 🙂

  5. Avatar de Fernando Luís Santos

    Bom trabalho, estas pequenas coisas são muito úteis.

  6. Avatar de Ricardo
    Ricardo

    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…

  7. Avatar de Tiago
    Tiago

    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.

  8. Avatar de Pedro Leitão
    Pedro Leitão

    IniFox = incrível.

    Grande diferença mesmo no arranque do firefox com sessão de várias tabs para restaurar.

    Excelente!

  9. Avatar de R00KIE
    R00KIE

    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.

  10. Avatar de JGomes

    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! 😉

    1. Avatar de JGomes

      esqueci-me de dizer que não convém terem o Firefox aberto.

  11. Avatar de escrifonife1
    escrifonife1

    Esses comandos , no ubuntu 9.04, não funcionaram.
    Pesquisando achei isso:
    http://ubuntuforum-pt.org/index.php?topic=38845.0

    t+

  12. Avatar de softclean
    softclean

    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 😀 )

  13. Avatar de Alien69
    Alien69

    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

    1. Avatar de Mike
      Mike

      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. 🙂

  14. Avatar de Rach
    Rach

    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.

  15. Avatar de Mário
    Mário

    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;