It’s me
Melhorando a performance do Firefox “aspirando” o sqlite
Faz uns dias que deixei marcado um artigo para ler e finalmente o li. Era sobre como melhorar a performance do Firefox fazendo um “Vacuum” no sqlite.
Segundo o post, a partir da versão 3, o Firefox guarda os favoritos, histórico e mais um punhado de coisas em sqlite. Por isso, manter essa base otimizada pode ser muito saudável ao seu Firefox.
E o processo é muito simples. No Ubuntu (testei no 9.04), instale o sqlite3. Abra o terminal e digite:
sudo aptitude install sqlite3
Depois, ainda no terminal, acesse a pasta de seu perfil (profile) do Firefox:
cd ~/.mozilla/firefox/alguma_coisa_estranha.default
Varia de acordo com o computador. No meu, esse alguma_coisa_estranha.default é 73cm0ffy.default.
Você vai ver que essa pasta possui vários arquivos com a extensão .sqlite, que é o que queremos otimizar. Para isso, feche o Firefox (não antes de terminar de ler esse post ou copiá-lo
), depois simplesmente digite, para cada arquivo:
sqlite3 nome_do_arquivo.sqlite vacuum
Tem como fazer em todos os arquivos de uma vez? Claro. Você está mexendo em um terminal Linux! Para fazer todos de uma vez, digite:
for i in *.sqlite; do sqlite3 $i vacuum; done
Não sei dizer qual a diferença de performance que isso proporciona, mas o que puder fazer pra melhorar acho que vale a pena.
Veja também:
| Print article | This entry was posted by Andre Noel on 27/07/2009 at 01:52, and is filed under ubuntu. Follow any responses to this post through RSS 2.0. Você pode deixar uma resposta ou fazer um trackback do seu próprio site. |

há 7 meses atrás
Bacana, além de salvar quase 10 mega de espaço em disco
Fui de 53M pra 44M. Sqlite é MVCC? Vou pesquisar!
há 7 meses atrás
Aqui obtive um ganho de desempenho interessante
[]’s
há 7 meses atrás
O comando vacuum reconstrói todo o arquivo. Para comparação, pense que ele vai “desfragmentar” os dados, o que vai trazer um ganho de desmpenho na leitura
há 7 meses atrás
Uma explicação mais detalhada sobre o vacuum em inglês):
http://www.sqlite.org/lang_vacuum.html
há 7 meses atrás
Gostei da idéia! Fiz um ajuste que permite rodar o processo sem saber o nome do diretório de perfil; mais prático para rodar por um script (quem sabe pela crontab para todos os usuários ou durante a carga do profile)….
find $HOME/.mozilla/firefox/ -name *.sqlite -exec sqlite3 {} vacuum \;
há 7 meses atrás
Eu sou fã de linha de comando, mas o BleachBit faz o vaccum, limpa caches, históricos, sessões, do Firefox, epiphany,Bash, Flash, Acroread, thumbnails, etc. e é GTK
há 7 meses atrás
Boa dica !
Só para acrescentar, no Mandriva Linux 2009.1 (o último) pelo menos o pacote que contém o sqlite3 é o pacote de nome sqlite3-tools.
Para instalar, pode-se usar o MCC ou o comando
urpmi sqlite3-tools
há 7 meses atrás
André, dá pra fazer o mesmo no Windows e eu pude sentir diferença bastante perceptível no desempenho.
Após baixar o sqlite3 direto do site, descompactá-lo num diretório no path do Windows (ou alterando o path do Windows acrescentando o path até o executável do sqlite3) – recomendo \windows\system32\ – , entre no seu diretório pessoal via prompt de comando e vá até o diretório do application data (no Vista é AppData\Roaming e AppData\Local – sim, em ambos têm arquivos do sqlite – , Mozilla\Firefox\Profiles\coisaesquisita.default) e execute o comando a seguir (funcionou direitinho no meu caso):
for %A in (dir *.sqlite) do sqlite3 %A vacuum
Mesmo assim valeu pela dica, melhorou bastante o desempenho do Firefox por aqui.
há 7 meses atrás
Pra mim aparece a mensagem
Unable to open database “places.sqlite”: file is encrypted or is not a database
para todos os arquivos .sqlite.
há 7 meses atrás
Fiz e funcionou perfeitamente, o desempenho da minha barra de endereço (autocompletar) estava sofrível e como eu não apago o histórico tava muito pesado, agilizou muito.
há 7 meses atrás
Funcionou comigo, o Firefox ficou mais esperto (mais rápido). É sempre bom economizar o computador.
há 7 meses atrás
Valeu a dica André. Eu resolvi adicionar isso no meu .bashrc e ficou dessa forma:
#optimizing Firefox sqlite databases
firefox=’/home/jackal/.mozilla/firefox/5azyrvyn.default’
opt_lock=”$firefox/optimize-sqlite”
today=$(date +%F)
if [ -e $opt_lock ]
then
last_run=$(ls -l $opt_lock | awk ‘{print $6}’)
else
last_run=’1900-01-01′
fi
if [ $last_run != $today ]
then
echo -n “Optimizing Firefox… ”
for i in *.sqlite
do
sqlite3 $i vacuum
echo -n ‘+’
done
echo
touch $opt_lock
echo “Done.”
fi
cd ~/
Assim o Firefox é otimizado todo o dia que eu logar, mas apenas uma vez por dia!
há 7 meses atrás
Acabei de fazer, ainda vou ver se houve ganho hehe
Abração!! \o/
há 7 meses atrás
Senti uma melhora no auto-completar, no resto não tenho como dizer, já que aí já pode ser melhoria psicológica, além de eu ter feito outras mudanças importantes no about:config.
há 7 meses atrás
Alceu (ou quem puder responder:
Pergunta de iniciante:
Mas o uso excessivo do Vacuum não pode gerar inconsistências nos BD’s?
Não sei se é verdade, mas dizem que não é bom efetuar desfragmentação de disco com tanta frequência em ambiente Windows. O mesmo não se aplica para arquivos de BD em qualquer sistema operacional?
Abraço.
há 6 meses atrás
Andrá, postei uma dica que por sua vez faz referência a uma outra é a meu ver um complemento para a sua dica.
há 6 meses atrás
Andrá, postei uma dica que por sua vez faz referência a uma outra é a meu ver um complemento para a sua dica.
http://vivaotux.blogspot.com/2009/08/mais-uma-dica-para-otimizar-o-fireox.html
há 6 meses atrás
# desta forma não necessita buscar a pasta do perfil
find ~ -name ‘*.sqlite’ -exec sqlite3 ‘{}’ ‘VACUUM;’ \;
# para windows entre na pasta do perfil e execute
for %i in (*.sqlite) do @echo VACUUM; | sqlite3 %i
há 5 meses atrás
Rafael, usa o comando sqlite3 e não o sqlite.
Eu cheguei a esta página procurando como o firefox tinha conseguido encriptografar o sqlite porque eu recebi esta mensagem quando tentei acessar os bancos de dados de curiosidade
, eu achava que sqlite fosse um link para sqlite3…
@post
Acabei achando esta página, amigo, você salvou meu firefox
Eu não formato o linux a mais de 3 anos (não me da problemas nenhum
), eu não entendia porque que quando eu instalava no windows ficava mais rápido, agora caiu a ficha \o/
há 4 meses atrás
se for em Mac OS, faça:
find . -name ‘*.sqlite’ -exec sqlite3 {} ‘VACUUM’ \;
abs