Mettiamo il turbo al nostro Firefox, con un piccolo trucco.

Sul forum di ArchLinux ci si stava giustappunto lamentando della lentezza e della pesantezza che assume Firefox dopo un certo tempo, rendendo il suo utilizzo decisamente meno proficuo. Qualcuno però ha linkato una soluzione che, testata, si è dimostrata assolutamente efficace per quello che riguarda le prestazioni sia di boot che di utilizzo del nostro browser preferito. Apertura più veloce, e reattività esponenziale saranno le caratteristiche del Firefox 3 che possediamo, dopo l’applicazione di questa piccola accortezza al suo database.

Tutti sappiamo (ssiiiii…) che Firefox, dalla versione 3.0, utilizza sqlite per memorizzare i siti visitati e tante altre comode informazioni, che ad ogni avvio vengono ovviamente ricaricate, all’occorrenza. Per applicare perciò questo tocco di classe al nostro browser, dobbiamo installare SQlite (grazie a MaxFact per il consiglio su cosa installare):

sudo apt-get install sqlite3 iprint

e spostarci nella directory relativa al nostro profilo di Firefox:

cd .mozilla/firefox/*.default

Adesso, arriva il trucco vero e proprio. Utilizzando SQlite, possiamo ottimizzare il database riordinando le tabelle e non avere più quella pletora pietosa che causa tanta lentezza e netti cali di prestazioni, sia su Linux che su altri sistemi operativi.

Per Linux…

for i in *.sqlite; do echo "VACUUM;" | sqlite3 $i ; done

E per Windows.

for %i in (*.sqlite) do @echo VACUUM; | sqlite3 %i

Per OSX non so come si faccia, ma essendo un sistema Unix-like, provvisto di bash, mi viene il sospetto che il comando sia lo stesso che in Linux. (Confermata la mia ipotesi corretta, grazie Dreamquest!)

Tutto ciò ovviamente è preferibile farlo con Firefox chiuso ;)

Adesso avviate Firefox e… magia :)

This entry was posted in Guide, How-To, Informatica, Linux, Windoze. Bookmark the permalink. Post a comment or leave a trackback: Trackback URL.
  • Pingback: Mettiamo il turbo al nostro Firefox, con un piccolo trucco.

  • http://justalittlebitofgeekness.blogspot.com/ Edo

    A voler essere più efficienti bisognerebbe sostituire nel ciclo

    echo “VACUUM;” | sqlite3 $i

    con

    sqlite3 $i “VACUUM;”

    ;)

  • http://geekslife.net/ Gianmarco Miccinilli

    Grazie per la segnalazione :D Firefox è da sempre il mio browser preferito :D è semplicemente fantastico ma molte volte risulta lento .. speriamo che con questo metodo riesco a risolvere :D

    Gianmarco Miccinilli

  • TheSgrash

    ma ogni quanto va fatto questo procedimento??? oppure è una tantum e va bene sempre???

  • http://ubu4ever.netsons.org/ g7

    Piccola nota: su Debian (e ipotizzo anche Ubuntu) il pacchetto sqlite NON contiene /usr/bin/sqlite3, ma /usr/bin/sqlite che è la versione 2 di sqlite, non la 3 (che il tuo comando usa).

    Per installare la 3 basta installare il pacchetto sqlite3 ;)

    Comunque grazie per il trucco, lo proverò il prima possibile.

  • http://www.piplos.org/ Piplos

    C'è un piccolo intoppo. Nell'andare con la guida mi sono fermato alla prima immagine. Avete qualche soluzione? :D

    Cmq ho avuto modo di provare la materia prima (il dottorblaster mi aveva passato questa guida in chan), e mi ha velocizzato davvero firefox! :)

  • http://it-it.facebook.com/people/Roberto-Viola/623780064 Roberto Viola

    secondo voi sarebbe utile metterlo in crond una cosa del genere?

  • http://dottorblaster.it/ Bl@ster

    Secondo me, sarebbe un po' da maniaci. Poi comunque dovresti farlo a firefox chiuso, e tu non sai a tale ora in che stato sarà il tuo browser ;)
    Certo è che mettere al boot un comando del genere non sarebbe poi tanto male :D

  • http://dottorblaster.it/ Bl@ster

    Non so come si faccia per questi problemi, prova a staccare gli occhi dall'immagine :D

  • http://dottorblaster.it/ Bl@ster

    Potrei modificare la riga di apt :D

  • http://dottorblaster.it/ Bl@ster

    Puoi eseguirlo ogni quanto vuoi.
    Di fondamentale importanza è se non lo esegui da anni, direi che comunque la cosa vada eseguita… uhm… ogni cinque mesi?

    Da non eseguire spesso, perchè credo che comunque non si abbiano miglioramenti evidenti ;)

  • http://dottorblaster.it/ Bl@ster

    Se hai problemi con la barra degli indirizzi che impone al tuo PC di “riflettere troppo”, sicuramente questa guida risolve la cosa :D

  • http://dottorblaster.it/ Bl@ster

    Non fa esattamente la stessa cosa? :)

  • http://justalittlebitofgeekness.blogspot.com/ Edo

    il risultato finale è lo stesso ma con il pipe crei due thread quando non hai alcuna necessità difarlo.

    Per esempio il comando

    grep <testo> <nomefile>

    può anche essere scritto come

    dd if=<nomefile> | cat | grep <testo>

    il risultato finale sarebbe lo stesso ma io preferisco la filosofia KISS ;)

  • http://justalittlebitofgeekness.blogspot.com/ Edo

    non si può dare un'indicazione che abbia un qualche valore … dipende da quanto si usa e con quale intensità, in ogni caso anche lanciarlo ogni giorno non crea alcun problema

  • http://justalittlebitofgeekness.blogspot.com/ Edo

    1) in cron puoi specificare anche il mese di esecuzione quindi non mi sembra da maniaci ma da programmatori, perchè devo fare qualcosa io quando il pc può farlo per me ? :D

    2) per eseguirlo quando ff non sta girando basta anteporre un while che testi l'esistenza del file di lock di ff (magari con uno sleep di qualche secondo per non mandare il processore al 100%) così, se anche cron lanciasse lo script mentre gira ff, rimarrebbe in attesa e appena il file di lock viene cancellato prosegue con il vacuum dei db ;)

  • http://dottorblaster.it/ Bl@ster

    Sulla 1, non è detto che un programmatore non possa essere maniacale negli atti. E secondo me, usare cron per ottimizzare Firefox (di non molto) lo è :D
    Sulla 2, hai ragione. :)

  • http://justalittlebitofgeekness.blogspot.com/ Edo

    :D
    scusa ma allora tu hai fatto un intero post su un metodo per ottimizzare (di non molto) ???

    Nel caso tu ritenga utile il consiglio che hai condiviso tramite questo posto allora dovresti ritenere utile eseguirlo più volte.

    Eseguire più volte una cosa manualmente è decisamente più da maniaci che non renderla un'automazione e dimenticarsene ;)

    Poi tutto dipende anche dalla tua definizione di “maniaco” ;)

  • http://dottorblaster.it/ Bl@ster

    Eseguita la prima volta, questa procedura fa miracoli. Ri-eseguita dopo non molto tempo, non comporta (penso) nessun particolare beneficio.
    Si tratta quasi di un defrag del database, in fondo :)

  • maxfact

    Ciao e complimenti per il blog
    Su ubuntu jaunty per far funzionare quello che hai scritto ho dovuto installare sqlite3 ed iprint
    forse puoi interessare

    Ah uso anche arch e devo dire che è fantastica

  • http://justalittlebitofgeekness.blogspot.com/ Edo

    si, il vacuum è proprio un defrag (copia il contenuto del db in un altro db temporaneo e poi lo riporta in quello originale così tutto viene riordinato.

    Esattamente come un defrag non si possono dare indicazioni di massima valide per tutti. Una persona che visita sempre la solita mezza dozzina di siti non trarrebbe un vantaggio nemmeno a lanciarlo dopo vent'anni mentre uno che apre una 50 di tab diversi su siti sempre nuovi ne trarrebbe giovamento già dopo una settimana …

  • http://it-it.facebook.com/people/Roberto-Viola/623780064 Roberto Viola

    non volevo scatenare un flame :D
    cmq esatto, il mio discorso era proprio di cronnarlo ogni mese controllando la presenza del lock di ff.
    solo perche' se no mi scorderei di farlo, tutto qui :D

  • http://dottorblaster.it/ Bl@ster

    Non è un flame, è solo una discussione pacifica, e mi pare che stiamo argomentando abbastanza invece di fissarci terroristicamente sulle nostre convinzioni :D
    Grazie a te dello spunto interessante ;)

  • http://dottorblaster.it/ Bl@ster

    Arch rulez :D

  • telperion

    nell'immagine c'è sqollata 5, non sqlite 3, ecco perchè ti blocchi.
    Con sqollata 5 devi usare la bash “spagnola” …
    export LANG=”es”

  • Dreamquest

    Confermo, il comando per Linux sembra andare anche su OSX. Testato su Leopard.

  • http://dottorblaster.it/ Bl@ster

    Grazie! :)

  • Davide

    “SQL error near line 1: database is locked”
    Non è normale,vero?

  • http://dottorblaster.it/ Bl@ster

    Chiudi Firefox, conta fino a dieci e dai il comando :)

  • Pingback: Working on a firefox plugin to optimize internal databases. « Py…zza Coder