Firefox 3.5: ottimizzare il DB con VACUUM?

| |

Firefox 3.5: ottimizzare il DB con VACUUM? 1Scopro e studio un post uscito qualche giorno su Geekissimo, incuriosito da un test fatto da un amico sul forum di Mozilla Italia. Mi dice di aver provato quello strano tool disponibile per il download, dovrebbe riuscire a velocizzare l’avvio di Firefox.

Collegamento ad un anonimo Dropbox, scarico e apro dapprima con 7-Zip ed in seguito con Notepad++ per capire di cosa si tratta. Tutto si riassume nell’eseguibile di SQLite ed in un file batch che lancia un’istruzione secca sfruttando l’eseguibile stesso:

@FOR %%G IN (*.sqlite) DO ( sqlite3 %%G "VACUUM" )

Il comando VACUUM è ufficialmente sfruttato da SQLite e permette di:

When an object (table, index, or trigger) is dropped from the database, it leaves behind empty space. This empty space will be reused the next time new information is added to the database. But in the meantime, the database file might be larger than strictly necessary. Also, frequent inserts, updates, and deletes can cause the information in the database to become fragmented – scrattered out all across the database file rather than clustered together in one place.

In parole molto povere: dato un database di valori che vengono costantemente aggiornati (nel caso di Firefox succede con tutti i dati: segnalibri, password, cookie e altro ancora) la cancellazione di un qualsiasi dato lascia uno spazio “scoperto” (privo di valore) ma pur sempre conservato all’interno del DB. Il tutto succede fino al successivo riempimento di quello spazio. Ciò vuol dire che ci si trova davanti ad una normale “frammentazione” (lo stesso succede con l’hard disk ed un regolare uso del sistema operativo). Impossibile porre paletti a questa costante crescita, soprattutto con il passare del tempo.

Per questo motivo sarà possibile lanciare il comando VACUUM per:

The VACUUM command cleans the main database by copying its contents to a temporary database file and reloading the original database file from the copy. This eliminates free pages, aligns table data to be contiguous, and otherwise cleans up the database file structure.

… copiare i valori in un DB temporaneo per poi spostarli (tutto in modo automatico) nel DB originale a fine pulizia, con conseguente guadagno di spazio occupato su disco.

# quanti DB SQLite possiedo?

E’ presto detto. In un profilo standard sarà possibile trovare (grosso modo) questi file:

C:Documents and SettingsGiovanniDati applicazioniMozillaFirefoxProfilesXXXX.default>dir *.sqlite
Il volume nell’unità C non ha etichetta.
Numero di serie del volume: XXXX-YYYY

Directory di C:Documents and SettingsGiovanniDati applicazioniMozillaFiref oxProfilesXXXX.default

10/07/2009  17.51             7.168 content-prefs.sqlite
15/07/2009  16.43           495.616 cookies.sqlite
15/07/2009  16.35             9.216 downloads.sqlite
15/07/2009  16.50           299.008 formhistory.sqlite
30/06/2009  18.17             2.048 permissions.sqlite
15/07/2009  16.50         9.252.864 places.sqlite
06/07/2009  19.22             2.048 search.sqlite
25/05/2009  08.18            11.264 signons.sqlite
26/05/2009  09.57             3.072 webappsstore.sqlite
9 File     10.082.304 byte
0 Directory  132.868.112.384 byte disponibili

C:Documents and SettingsGiovanniDati applicazioniMozillaFirefoxProfilesXXXX.default>

Firefox 3.5: ottimizzare il DB con VACUUM? 2

Parliamo di circa 9 MB che dopo l’ottimizzazione sono passati a quasi 8, trattandosi di puro testo (salvato nei DB) non è affatto male ;-)

# il tool

Si tratta di un banale codice (comunque merito all’averci pensato) realizzato da InfoSpyware.com, il suo nome è IniFox, è stato presentato nel post (in lingua originale, spagnolo):

infospyware.com/blog/acelera-el-inicio-de-firefox-con-inifox

ed è disponibile gratuitamente anche su GxWare.org.

# la procedura

Innanzi tutto è d’obbligo mettere il solito avviso, che non fa mai male …

Firefox 3.5: ottimizzare il DB con VACUUM? 3ATTENZIONE: Prima di eseguire qualsiasi modifica ai vostri file e/o dispositivi siete pregati di effettuare un backup di questi. Solo così sarete capaci di tornare indietro riparando ad eventuali errori di distrazione. L’articolo e l’autore non possono essere ritenuti responsabili di alcun danno subito dalla vostra strumentazione. Buon lavoro.

A questo punto i passi da seguire sono molto semplici, l’importante è aver scaricato e scompattato l’archivio contenente IniFox. Detto ciò, ecco il passo-passo:

  • CHIUDERE MOZILLA FIREFOX
  • Inserire i due file (batch & exe) di IniFox all’interno della cartella del proprio profilo. Per individuarla basterà consultare questo articolo nel support ufficiale di Mozilla Firefox: support.mozilla.com/it/kb/Profili#Individuare_la_cartella_del_profilo
  • Sarebbe bene fare un backup dei file *.sqlite dopo aver creato una cartella apposita. Personalmente ho optato per due veloci comandi dal prompt di MS-DOS, questo è quanto:
C:Documents and SettingsGiovanniDati applicazioniMozillaFirefoxProfilesXXXX.default>mkdir backup_gioxx

C:Documents and SettingsGiovanniDati applicazioniMozillaFirefoxProfilesXXXX.default>copy *.sqlite backup_gioxx
content-prefs.sqlite
cookies.sqlite
downloads.sqlite
formhistory.sqlite
permissions.sqlite
places.sqlite
search.sqlite
signons.sqlite
webappsstore.sqlite
9 file copiati.

C:Documents and SettingsGiovanniDati applicazioniMozillaFirefoxProfilesXXXX.default>
  • A questo punto si potrà lanciare (doppio clic o sempre dal prompt di Ms-Dos) il file “IniFox.bat” e attendere la fine del processo.
  • Aprire ora Mozilla Firefox per notare (probabilmente) un minor tempo di caricamento dell’interfaccia principale.

Il processo può essere (ovviamente) ripetuto più volte nel tempo (magari lasciate passare una o due settimane tra un’ottimizzazione e l’altra) e –una volta tantonon si tratta di applicativo invasivo che potrebbe mettere in pericolo i vostri dati (come invece spesso accade, nonostante si cerchi sempre di tenervi informati! ;)).

Cheers :-)

Correzioni, suggerimenti? Lascia un commento nell'apposita area qui di seguito o contattami privatamente.
Ti è piaciuto l'articolo? Offrimi un caffè! ☕ :-)

L'articolo potrebbe non essere aggiornato

Questo post è stato scritto più di 5 mesi fa, potrebbe non essere aggiornato. Per qualsiasi dubbio ti invito a lasciare un commento per chiedere ulteriori informazioni! :-)

Condividi l'articolo con i tuoi contatti:
Subscribe
Notify of
guest

This site uses Akismet to reduce spam. Learn how your comment data is processed.

12 Commenti
Oldest
Newest Most Voted
Inline Feedbacks
View all comments