Mittwoch, 1. September 2010

Ladezeiten von Firefox verkürzen -> SQLite komprimieren

Mein Firefox benötigte immer länger zum starten. Zugegebenermaßen: ich bin ein alter Addon-Fuchs, zur Zeit zählt die Addonliste stolze 22 Addons, von denen 8 deaktiviert sind.

Die langen Startzeiten resultieren allerdings nur sekundär aus den Addons, mein Problem ist vielmehr die Konstellation, über welche mein Firefox gestartet wird:
Auf einem Netzlaufwerk liegt mein Cryptocontainer -> dieser wiederum muss erst gemounted werden. Darin enthalten ist der Firefox Portable abgelegt. Das bedeutet also, es müssen alle Dateien, welche zum Start des Firefox benötigt werden, zunächst entschlüsselt (Rechenleistung) und vom Netz bezogen werden. Da fallen die sqlite-Dateien mit Größen bis hin zu 70 MB natürlich schnell ins Gewicht, da sie zu ebendiesen benötigten Dateien gehören.

Nach kurzer Recherche findet man allerdings schnell Tools, welche einem erklären, zu welchem Sinn und Zweck diese Datenbank-Dateien da sind und wie man sie komprimieren kann. Wie man sich denken kann, dienen also die sqlite-Dateien der Datenablage, z. B. für sichere URLs, besuchte Webseiten oder aber, wie bei mir: als Ablage für meinen RSS-Reader namens "Brief". Erst jetzt fiel mir auf, dass ich dem Reader keinerlei Begrenzungen aufgezeigt hatte, sondern hier eine ewig lange History gespeichert wird. Dies habe ich nach dem Bemerken sofort unterbunden und auch von der Möglichkeit im Addon, alte Inhalte zu löschen, Gebrauch gemacht. Die "Brief.sqlite" konnte man somit schon einmal gut verkleinern.

Um jedoch Dateien wie places.sqlite oder urlclassifier3.sqlite etwas zu schmälern benötigt es ein simples Tool, namens sqlite.exe (wer hätts gedacht :D), welches es hier zum Download gibt (Precompiled Binaries For Windows -> erster Punkt -> hier die Version 3.7.2: http://www.sqlite.org/sqlite-3_7_2.zip).

Die zum Download verfügbare .exe nun einfach in den Ordner mit den .sqlite-Dateien kopieren (bei FirefoxPortable ist dies z. B. X:\FirefoxPortable\Data\profile) und anschließend im selbigen Ordner eine Batch erstellen, z. B. "compress_sqlite.bat". Darin enthalten ist eine einzige Anweisung für die sqlite.exe:
@FOR %%G IN (*.sqlite) DO ( sqlite3 %%G "VACUUM" )

Die .bat kann auch hier geladen werden.

Diese nun ausführen und alle .sqlite-Dateien werden so gut es geht komprimiert, was, so der Ersteller der .exe, ohne Datenverlust geschieht.

Nachdem nun mein Profil mal eben über 100 MB geschrumpft ist, lädt das Profil natürlich wieder innerhalb von 5 Sekunden ... Trotz Netzlaufwerk und Verschlüsselung ... ich bin happy ;)

So far

Snaker

2 Kommentare:

  1. Klappt, aber anschließend einmal Firefox starten und wieder beenden - und schon hat z. B. die places.sqlite wieder die vorherige Größe.

    AntwortenLöschen
  2. Heyho, lösch/verschiebe die places.sqlite mal, nachdem du dir deine Bookmarks gesichert hast (Firefox dazu schließen). Und schau, wie sich die neu erzeugte Datei anschließend verhält.

    AntwortenLöschen