Und wieder zeigt sich, wie leicht ich von einem Thema ins nächste rutsche. Wie gestern schon angekündigt wollte ich mich mit der Synchronisation von Addons befassen, aber meine sprunghafte Natur hat sich natürlich gleich von etwas neuem ablenken lassen.
In der Firma benutze ich wie die meisten den Firefox Portable, und das schon relativ lange. Als ich heute schauen wollte, wie groß die Addons denn so sind, um den benötigten Speicherplatz schon mal einschätzen zu können, viel mir fast alles aus dem Gesicht: großzügige 280 MB umfasste mein Profilverzeichnis, die reinen Addons beanspruchen davon aber nicht mal 20 MB für sich. Der Großteil entfällt auf die von Firefox und einigen Addons angelegten SQLite Datenbanken.
Die größten Speicherfresser
Spitzenreiter der Verschwendung war/ist das Addon Brief, welches scheinbar nie seine DB aufräumt, selbst wenn im GUI was anderes behauptet wird, und somit auf stolze 130 MB kam. Da geht zwar noch einiges mehr, aber dafür hab ich Brief wohl noch nicht lange genug installiert. Nett war auch das 60 MB große Backup-File, das Brief noch angelegt hatte.
Platz 2 geht an die Datei urlclassifier3.sqlite und gehört direkt zu Firefox. Diese empfand ich mit ~50 MB auch als etwas zu groß, insbesondere für eine Anwendung, die als Portable betittelt wird und somit wohl häufig auf USB-Sticks eingesetzt wird. Wenn immer so große Brocken beim Start oder bei Eingaben geladen und durchsucht werden müssen, ist es ja kein Wunder, dass der Fuchs etws langsam wirkt.
Auch die Datei places.sqlite kommt ohne Probleme schon auf gute 10 MB, selbst wenn darin nur die offenen Tabs und Lesezeichen gespeichert werden. Aktiviert man dann auch noch die Chronik, kommt man schnell auf 20-30 MB oder noch mehr.
Alles zusammen also schon eine nicht ganz unerhebliche Datenmenge, die bei jedem Start verarbeitet wird.
Erster Schritt, Aufräumen und somit Komprimieren der Datenbanken
Auf Caschys Blog gibt es einen guten Artikel, wie man diese Aufgabe bewältigen kann. Angesprochen werden verschiedene Möglichkeiten, die für mich interessanteste und auch flexibelste Lösung ist über die Kommandozeile.
Man benötigt unter Windows das Programm sqlite3.exe. Das Archiv enthält nur eine Datei, die man direkt in den Profilordner von Firefox (oder auch Thunderbird) entpackt. Mit diesem Programm ist es möglich, die überflüssigen Leerzeilen, die sich im Laufe der Zeit in Datenbanken ansammeln, zu entfernen, was zu enormen Platzeinsparungen führen kann.
Jetzt braucht es nur noch eine kleine Batch-Datei (ebenfalls im Profilordner), um den Vorgang zu starten. Der Name der Datei ist dabei egal, nur die Endung muss .bat lauten.
@echo off echo. echo VACUUM SQLite Files echo ---------------------------------------- for %%i in (*.sqlite) do sqlite3.exe %%i "VACUUM" & echo VACUUM %%i echo done
Wichtig: Firefox darf nicht geöffnet sein, wenn die Komprimierung ausgeführt wird!
Dieser Vorgang kann, je nach Größe der vorhandenen SQLite Dateien, mehrere Minuten dauern. Anschließend sollte sich aber schon ein Unterschied in der Ladegeschwindigkeit von Firefox bemerkbar machen.
Existenzberechtigung der Addons prüfen
Dass Addons den Startvorgang von Firefox verlangsamen, ist inzwischen allgemein bekannt. Einige machen sich kaum bemerkbar, andere Addons können mehrere Sekunden ausmachen.
Im Falle Brief muss man sich die Frage stellen, wie oft man die Funktionen des Addons nutzt. Hat man Lesezeichen? Archiviert man alles, um später nochmal drauf zugreifen zu können? Oder nutzt man es nur, um die neusten Infos auf Webseiten nicht zu verpassen?
Wenn man den letzten Punkt mit Ja beantworten kann, wäre das einfachste, vor der Komprimierung der Datenbanken die von Brief einfach zu löschen. Man spart Platz und Brief reagiert schneller. Den Befehl zum löschen kann man mit in der Batch-Datei unterbringen.
@echo off del brief.sqlite echo. echo VACUUM SQLite Files echo ---------------------------------------- for %%i in (*.sqlite) do sqlite3.exe %%i "VACUUM" & echo VACUUM %%i echo done
Bei anderen Addons muss man schauen, ob man diese überhaupt dringend benötigt. Falls nein, Addon deaktivieren oder gleich ganz löschen. FoxyProxy ist so ein Kandidat, zumindest kommt es mir so vor, als wenn FF deutlich schneller ist, wenn man das Addon deaktiviert. Allerdings brauche ich es, daher werde ich mich damit wohl abfinden müssen ^^
urlclassifier3.sqlite
Eine grundsätzliche Frage muss hier erst beantwortet werden: wie wichtig ist mir „Sicherheit“?
Viele haben sie schon mal gesehen, die Warnung, dass eine Seite als unsicher oder attackierend eingestuft wurde. Google führt eine Datenbank, in der alle als bedenklich eingestuften Webseiten aufgelistet werden. In regelmäßigen Abständen erwischt dies auch bekannte Seiten, weil ein Teil ihres Quellcodes plötzlich durch die Heuristik-Prüfung fällt oder aber ein Werbeanbieter gehackt wurde und die Werbung so plötzlich echten Schadcode enthält. Das Problem ist dann nach meist wenigen Minuten behoben, der Eintrag bei Google aber nur sehr aufwendig zu entfernen.
Die Datei urlclassifier3.sqlite stellt ein lokales Abbild dieser Datenbank von Google dar. Zumindest in Auszügen. Jede eingegebene Adresse wird erst mit dieser Datenbank abgeglichen, bevor sie aufgerufen wird. Das wiederum kostet Zeit und lässt den Firefox langsamer werden.
Die Datei nur zu löschen, bringt nicht den gewünschten Erfolg. Man muss auch dafür sorgen, dass sie nicht gleich wieder neu von Google befüllt wird. Dazu geht man in die Einstellungen von Firefox:
Extras -> Einstellungen -> Sicherheit
und entfernt die Häckchen bei allen Punkten, die mit Webseiten blockieren, wenn… beginnen.
Nach dem nächsten Start von Firefox wird diese Datei zwar neu angelegt, aber sie wird nicht mehr größer und bei Seitenaufrufen auch nicht mehr durchsucht.
Fazit
Vorher fast 300 MB, jetzt nur noch knapp über 30 MB im Profilordner und ein Firefox, der sich spürbar schneller verhält 🙂