Verfasst von Firefox am 27. August 2012
unterDie Entwicklung des Open-Source-Browsers Firefox geht voran, zuletzt hat die Software im Juli ein Update auf die aktuelle Version 14 erhalten. Nun ist die Beta von Version 15 auf dem Weg zur Finalisierung, und gibt einen Vorgeschmack auf die kommenden Neuerungen. Als Haupt-Feature wurde der Speicherverbrauch merklich reduziert, die Entwickler selbst sprechen von einer "radikalen Idee", mit der von Add-ons blockierter Speicher wieder nutzbar gemacht wird. Das genaue Vorgehen wird von Kyle Huey in seinem Blog beschrieben.
Der Speicherbedarf ist schon lange eines der Hauptprobleme des Webbrowsers, eine endgültige Lösung wäre ein dementsprechend großer Schritt. Hauptursache stellt die Add-on-Struktur dar, die Drittentwicklern einen umfassenden Zugriff ermöglicht. Viele Speicherlecks werden durch Erweiterungen verursacht, wenn ein Tab geschlossen und dessen DOM-Strukturen nicht freigegeben werden. Diese Speicherbereiche, Zombie Compartments genannt, bleiben anschließend ungenutzt und führen so zu einer künstlich herbeigeführten Speicherknappheit.
Technisch gesehen wird der JavaScript-Heap in verschiedene Bereiche unterteilt, die intern Compartments genannt werden. Code, der für die Oberfläche des Programms oder für Add-ons benötigt wird, wird in einem bevorzugten Speicherbereich ausgeführt. Neben diesen "privilegierten Bereichen" existieren weitere Compartments, die beispielsweise Daten von Webseiten halten. Die neu eingeführten Veränderungen basieren auf der Tatsache, dass sowohl Firefox als auch seine Add-ons einen bevorzugten Speicherbereich verwenden. Von diesem Bereich aus werden Referenzen in die Bereiche erzeugt, in denen die Webseiten gehalten werden. Jede auf diese Art generierte Referenz wird vorgemerkt und beim Schließen oder Öffnen eines Tabs durchsucht, um anschließend alle überflüssigen DOM-Referenzen zu löschen.
Erste Tests mit der speicherlastigen SiteAdvisor-Erweiterung (in Version 3.4.1) haben den Erfolg bereits bestätigt, beim Schließen von 150 Tabs wurden rund 1,5 Gigabyte freigeräumt. In Version 14 konnten unter gleichen Voraussetzungen nur 200 Megabyte bereinigt werden.
In der finalen Version sollen außerdem auch von Erweiterungen erzeugte Sandboxes beseitigt werden, sobald sie keine Verwendung mehr finden. Insbesondere die Schnittstelle Jetpack, die zum Entwickeln von Erweiterungen eingesetzt wird, bietet derzeit großes Potential für Speicherlecks, da die fraglichen Speicherbereiche intensiv von ihr genutzt werden. Zusätzlich zur klassischen Variante von Firefox erschien eine Beta für Android, die speziell für die Nutzung auf Tablets angepasst wurde. In diesem Zusammenhang gibt es allerdings noch Probleme, beispielsweise funktioniert die Synchronisation zwischen unterschiedlichen Firefox-Installationen noch nicht problemlos.