20847 Letture

Migliorare le performance di Firefox compattando i suoi database

Per la memorizzazione delle informazioni relative ai cookie, ai file scaricati, alla cronologia, alle ricerche effettuate, ai segnalibri, ai dati inseriti nei moduli online, Mozilla Firefox 3 sfrutta alcuni database creati nel formato SQLite.

La principale caratteristica di SQLite sono le performance: il DBMS è "ridotto all'osso" tanto che il suo "motore" pesa appena poche centinaia di chilobytes (circa 500 per l'intera libreria). Il file di database di SQLite è composto da un unico elemento che è totalmente indipendente dalla piattaforma (le dimensioni del database possono arrivare anche a 2 Terabyte). SQLite ha anche alcuni svantaggi quali il mancato supporto delle "stored procedures", gestione di permessi, non supporta alcuni importanti comandi di SQL (ad esempio, RIGHT/FULL OUTER JOIN).

Il creatore di SQLite (Richard Hipp) ha rilasciato il suo software come programma di pubblico dominio quindi è utilizzabile da chiunque, sia commercialmente che per usi privati, senza alcun genere di restrizione.


Come qualunque altro DBMS, allorquando dal database vengano eliminati dei dati memorizzati precedentemente, questi continuano ad occupare spazio sebbene siano stati di fatto rimossi.
Il file database potrebbe quindi crescere, in dimensioni, più del necessario. Inoltre, frequenti modifiche al contenuto della base dati (inserimenti, aggiornamenti, cancellazioni di record) può rendere il database più frammentato, con implicazioni negative in termini prestazionali.

Con un trucco semplice da mettere in pratica, è possibile “compattare” le basi di dati SQLite impiegate da Firefox 3.x contribuendo quindi, così, a rendere il browser opensource più scattante.

Per prima cosa è necessario scaricare i file binari per Windows dell'ultima versione di SQLite (cliccare qui). Il contenuto del file zip compresso (un unico file eseguibile denominato sqlite3.exe) dovrà essere estratto in una cartella di lavoro di Firefox.
Nel caso di Windows XP, per accedere alla directory d'interesse, basterà cliccare su Start, Esegui... quindi digitare %userprofile%\Dati applicazioni\Mozilla\Firefox\Profiles ed infine fare doppio clic sulla sottocartella carattericasuali.default.
Nel caso di Windows Vista, si dovrà digitare %userprofile%\AppData\Local\Mozilla\Firefox\Profiles nella casella Inizia ricerca in basso a sinistra e premere Invio. Come secondo passo, anche qui, si dovrà fare doppio clic sulla sottocartella denominata carattericasuali.default.
Il file sqlite3.exe deve essere copiato, appunto, nella directory carattericasuali.default.

Nella stessa cartella, si dovrà creare un file di testo inserendo al suo interno quanto segue:
@FOR %%G IN (*.sqlite) DO ( sqlite3 %%G "VACUUM" )
Il file dovrà essere rinominato come clean_sqlite.bat
Facendo doppio clic sul file clean_sqlite.bat, verrà avviato l'eseguibile di SQLite scaricato in precedenza e memorizzato nella stessa directory. Per ciascun file dotato di estensione .sqlite verrà lanciato il comando VACUUM di SQLite (ved. questa pagina): esso si farà carico di deframmentare e compattare tutti i database utilizzati da Mozilla Firefox.


  1. Avatar
    fabrizio.r
    13/09/2009 22:42:17
    SpeedyFox svolge la stessa funzione, ma ritengo sia più pratico da usare
  2. Avatar
    Michele Nasi
    05/09/2009 09:57:31
    Digitando %appdata%\Mozilla\Firefox\Profiles in Start, Esegui... non ti compare una cartella denominata .default ?
  3. Avatar
    sandro124
    04/09/2009 19:48:08
    Gent.le sig. Nasi ho seguito la sua procedura ma quando vado nella cartella del profilo di firefox non c'è traccia della cartella. Dove va copiato il file msqlite.exe? La cartella in questione e descritta nella guida è carattericasuali.default ebbene io ho controllato ma non è presente nel mio profilo. Magari bisogna forse crearla oppure si trova dentro qualche altra directory??? Mi farebbe piacere avere sua risposta grazie
  4. Avatar
    Gabriele76
    28/07/2009 10:00:37
    Ho XP in inglese e mettendo %appdata anziché %userprofile%\Dati applicazioni si risolvono eventuali problemi di lingua (la cartella Dati applicazioni è infatti Application data nella versione inglese). Ottimo sito, ciao a tutti e buon lavoro.
  5. Avatar
    Gioxx
    21/07/2009 18:00:59
    Mi permetto di lasciare un articolo "pronto da mangiare" uscito giusto un giorno prima di questo su ilSoftware, giusto per capire perché -una volta tanto- non si va a disastrare il proprio profilo contrariamente a ciò che accade troppo spesso con altre applicazioni "chiuse" che promettono faville ;-) http://gioxx.org/2009/07/16/firefox-3-5 ... on-vacuum/ Buon lavoro Michele. Giovanni (Gioxx), Mozilla Italia
  6. Avatar
    ildani
    19/07/2009 12:31:41
    Per quanto riguarda l'implementazione in FF c'è un'estensione, per ora funzionante solo in ambienti GNU/Linux, che si chiama Optimus DB di Emanuele Rampichini: http://lele85.netsons.org/blog/projects/ E' dalla sua idea che è nato questo "trucco".
  7. Avatar
    Compact
    19/07/2009 09:43:36
    Io compatto i db di Firefox e Thunderbird con questo Da quasi un anno. Interfaccia grafica e scelta del profilo.
  8. Avatar
    Jake
    18/07/2009 19:47:54
    Citazione: Ti posso dire che una settimana è poco per notare delle differenze. Dopo qualche mese di utilizzo assiduo invece, i miglioramenti si notano. ;)
    ok... a meno che uno non preferisca ottimizzare più spesso il db sqlite in modo da averlo sempre piuttosto "scattante". :D
  9. Avatar
    jacopo
    18/07/2009 18:05:58
    Citazione: Potrebbe essere una buona idea far eseguire il file batch allo schedulatore di windows, per esempio una volta a settimana.
    Ti posso dire che una settimana è poco per notare delle differenze. Dopo qualche mese di utilizzo assiduo invece, i miglioramenti si notano. ;)
  10. Avatar
    Jake
    18/07/2009 14:40:35
    Potrebbe essere una buona idea far eseguire il file batch allo schedulatore di windows, per esempio una volta a settimana.
Migliorare le performance di Firefox compattando i suoi database - IlSoftware.it