19 Reaktionen

Firefox 41: Mozilla optimiert Speicherverbrauch für Adblock Plus-Nutzer

Geschätzte Lesedauer:

Werbeblocker sind eine praktische Erfindung, kommen aber zu einem Preis: sie benötigen Ressourcen, teilweise nennenswert mehr als andere Add-ons. Nutzer von Adblock Plus können sich auf eine Optimierung in Firefox 41 freuen, welche besonders diesem Add-on zugute kommt.

Werbeblocker können teilweise signifikante Auswirkungen auf den Speicherverbrauch von Browsern haben. Auch wenn das ein Preis ist, den viele gerne bereit sind zu zahlen, ist das zumindest ein Punkt, den man im Hinterkopf behalten sollte, insbesondere wenn man Probleme mit dem Speicherverbrauch hat und der Browser an seine Leistungsgrenzen stößt. Gerade die populäre Erweiterung Adblock Plus hat mit der Zeit den Ruf erhalten, besonders speicherhungrig zu sein. Dies hängt zum einen mit Sicherheit damit zusammen, dass es sich hierbei schlicht um die mit Abstand populärste Erweiterung dieser Art handelt. Zum anderen hängt dies aber auch mit der Funktionsweise von Adblock Plus und von Firefox zusammen. Adblock Plus nutzt ein relativ großes Stylesheet, um Elemente zu verstecken, welche nicht blockiert werden können. Dieses wird von Adblock Plus nur einmal global eingebunden, Firefox erstellt davon intern allerdings für jeden Frame eine eigene Kopie und jede davon benötigt Speicher. So kann Adblock Plus in Extremfällen den Speicherverbrauch verdoppeln oder gar noch sehr viel höher ansteigen lassen. Das ist natürlich ein Extremfall, aber ein Fall, wie er vorkommt.

In der Nightly-Version von Firefox 41 ist nun eine entscheidende Änderung gelandet, welche es Firefox erlaubt, identische Stylesheets zwischen den Dokumenten zu teilen. Hiervon profitiert grundsätzlich jeder Firefox-Nutzer, da auch Firefox selbst ein Stylesheet mit Standard-Deklarationen in jedes Dokument einbindet. Während diese Neuerung ein Ersparnis von 120 KB pro Dokument bringt (abzüglich einmal 120 KB, da das Stylesheet einmal eingebunden werden muss), sind die Auswirkungen für Nutzer von Adblock Plus spürbar größer: hier werden über 2 MB pro Dokument eingespart, was sich zu einem deutlichen Speicherersparnis gegenüber Firefox 40 summieren kann. Gerade bei komplexen Webseiten mit vielen iFrames, die dadurch einen extremen Speicherverbrauch verursachen, dürfte der Unterschied entsprechend spürbar ausfallen. Wie viel das bringen kann, belegt ein Testcase eines Extremfalls, bei dem der Speicherverbrauch durch die Änderung um etwa 1,5 GB reduziert worden ist.

Nicht nur Speicher wird durch diese Neuerung gespart, sondern auch reale Zeit, wenn sich diese auch in einem kaum wahrnehmbaren Bereich befindet. Auf dem System des Patch-Erstellers (i7 2,6 GHz Macbook Pro von 2012) resultiert dies laut Bugzilla-Ticket in einem Ersparnis von 0,3ms für Firefox selbst respektive 13ms inklusive Adblock Plus-Stylesheet pro Seitenaufruf.

Dieser Artikel wurde von Sören Hentzschel verfasst.

Sören Hentzschel ist Webentwickler und Mozilla Repräsentant (Alumnus). Neben diesem Mozilla-Blog betreibt er unter anderem noch firefoxosdevices.org sowie das Fußball-Portal Soccer-Zone und ist außerdem Administrator des deutschsprachigen Firefox Hilfeforums Camp Firefox.

17 Kommentare - bis jetzt!

Eigenen Kommentar verfassen
  1. Pit
    schrieb am :

    Zum Thema: Gut dass Mozilla daran arbeitet.
    Was mir eigentlich wichtig ist:
    Adblock PLUS. Nujaaaaa
    Es gibt ja immernoch Adblock Edge (der Ideologie halber) oder uBlock , wenn es auf Ressourcen ankommt.

  2. Frank
    schrieb am :

    würde das dann auch Adblock Edge und uBlock (favorisiert) zugute kommen?
    weiss das jemand?

  3. Strabo
    schrieb am :

    Generell hat sich viel in der letzten Zeit in der Speicherverwaltung getan. Ich habe üblicherweise so um die 50 Tabs offen, und bei mir ist der Speicherverbrauch um fast 1 GB runtergegangen von 2,5 GB (und mehr!) auf ca. 1,5 GB. Und schon vorher war FF der Browser, der am sparsamsten mit dem RAM umgegangen ist. Chrome verbraucht bei mir 350 MB ohne dass eine Webseite geladen wurde, nur mit Hintergrundprozessen.

  4. Sören Hentzschel Verfasser des Artikels
    schrieb am :

    @Pit:

    Was mir eigentlich wichtig ist:
    Adblock PLUS. Nujaaaaa…
    Es gibt ja immernoch Adblock Edge (der Ideologie halber)

    Das ist dann aber wirklich nur rein der Ideologie halber. Schließlich ist das besagte Feature optional und kann ganz einfach deaktiviert werden, dafür braucht man keinen Fork, der auch noch auf einer alten Version von Adblock Plus basiert. Dann würde ich eher einen ganz anderen Werbeblocker einsetzen als Adblock Edge, das würde dann wenigstens einen wirklichen Unterschied machen. 😉

  5. Sören Hentzschel Verfasser des Artikels
    schrieb am :

    @Frank:

    würde das dann auch Adblock Edge und uBlock (favorisiert) zugute kommen?
    weiss das jemand?

    Adblock Edge vermutlich, da Adblock Edge ein Fork von Adblock Plus ist und entsprechend ziemlich gleich funktionieren sollte. uBlock wird davon nicht in besonderem Maße profitieren, da uBlock so nicht arbeitet, das wendet kein großes Stylesheet auf jeder Webseite an, da bleibt also nur der kleine Gewinn (immerhin).

  6. Sören Hentzschel Verfasser des Artikels
    schrieb am :

    @Strabo:

    Generell hat sich viel in der letzten Zeit in der Speicherverwaltung getan. Ich habe üblicherweise so um die 50 Tabs offen, und bei mir ist der Speicherverbrauch um fast 1 GB runtergegangen von 2,5 GB (und mehr!) auf ca. 1,5 GB. Und schon vorher war FF der Browser, der am sparsamsten mit dem RAM umgegangen ist. Chrome verbraucht bei mir 350 MB ohne dass eine Webseite geladen wurde, nur mit Hintergrundprozessen.

    Schön zu lesen. Man liest ja meistens nur die bekannten Vorureiteile über den Speicherverbrauch von Firefox, und das in der Regel von Leuten, die überhaupt nicht Firefox nutzen. 😉

  7. Michael
    schrieb am :

    Ich habe den Bug 988266 auch abonniert, weil ich lange ein ABP-Sytelsheet von 4MB hatte. Wirklich krass deutlich stieß ich in der Adventszeit auf das Problem, als Amazon seine last-minute-vieles-günstiger-Seite aufgesetzt hatte. Die bestand aus hunderten iframes der entsprechenden Artikel.
    Resultat, wenn ich die Seite lud, war, dass auf meinem quadcore-Haswell-i7 mit 16GB RAM Firefox ca. 2 Minuten einfror und sich schließlich bei 3-4 GB RAM eingependelt hatte. Ohne ABP waren es glaube ich kaum 500MB RAM und vor allem nicht dieses unfassbare Einfrieren. Es war also nicht nur „mehr RAM, pfui“, sondern auch eine unglaubliche Rechenlast, die den Browser unbenutzbar macht.

    Was für mich dann schon ein sehr hilfreicher Workaround war: Ich habe alle Abos der Filterlisten gelöscht und mir nur die Regeln herauskopiert, die tatsächlich in den letzten Jahren mal einen Treffer hatten. Ein persönliches „best of“ der CSS-Filter, sozusagen. Damit war das ABP-Stylesheet nur noch 600kB klein und das Problem wenigstens viel weniger dramatisch.

    Ich geifere förmlich nach der Version 41 im Aurora-Channel… Müsste Freitag kommen, oder?
    Wird dann neben der Tatsache, dass keine tausend Kopien des Stylesheets mehr nötig sind, auch die Rechenlast entsprechend egalisiert? Also dass das Stylesheet nur einmal prozessiert wird, anstatt in jedem iframe? Das wäre mir gleich wichtig wie die Speicherersparnis.

    Ganz große Klasse, diese Arbeit. Beachtet, dass der eigentliche Bug, Nr. 77999, bereits von 2001 ist. Da hieß Firefox glaube ich noch Phoenix. 🙂
    Und der „war on terror“ hatte auch noch nicht begonnen. Und ich hatte Haare. Und Pickel. Und überhaupt. 😉

  8. Sören Hentzschel Verfasser des Artikels
    schrieb am :

    @Michael:

    Ich geifere förmlich nach der Version 41 im Aurora-Channel… Müsste Freitag kommen, oder?

    Theoretisch ja. Aber nachdem sich nun der Release von Firefox 39 und wohl auch der Firefox 40 Beta 1 verzögert, weiß ich nicht, ob sich das auch auf den Aurora-Release auswirkt.

    Wird dann neben der Tatsache, dass keine tausend Kopien des Stylesheets mehr nötig sind, auch die Rechenlast entsprechend egalisiert? Also dass das Stylesheet nur einmal prozessiert wird, anstatt in jedem iframe? Das wäre mir gleich wichtig wie die Speicherersparnis.

    Ganz genau. Darauf beziehen sich die Performance-Verbesserungen im letzten Absatz des Artikels. Die entstehen dadurch, dass genau das entfällt.

  9. Sören Hentzschel Verfasser des Artikels
    schrieb am :

    @awe:

    Jetzt fehlt noch das.https://issues.adblockplus.org/ticket/495

    Klingt auch interessant, ja. 🙂

  10. Alex
    schrieb am :

    Gute Neuerung! Nebenbei habe auch ich in den letzten Versionen niedrigeren Speicherverbrauch festgestellt.

    Ist das lokal (auf Addon-Ebene) nur für AdBlock? Werden bereits Sheets von Webseiten nur einmal geladen?

    Jetzt braucht es nur noch 1. eine vernünftige Sitzungsverwaltung (eine, die bei einem Flash-Update bei geschlossenem Firefox die gespeicherte Sitzung nicht überschreibt), 2. Sync+: Master/Slave-Sync und Sync für Masterpasswort-geschützte Passwörter und 3. Behebung von gecacheten Seiten bei Proxies: Wenn die Anmeldeseite des Proxies bei z.B. google kommt, dauert es ewig, bis sie aus dem Cache raus ist…

  11. Sören Hentzschel Verfasser des Artikels
    schrieb am :

    Ist das lokal (auf Addon-Ebene) nur für AdBlock? Werden bereits Sheets von Webseiten nur einmal geladen?

    Für Adblock Plus und alle anderen Add-ons, die derartiges machen. Abgesehen von Adblock Edge, was ein Fork von Adblock Plus ist, weiß ich nicht, ob dies ein weiteres Add-on betrifft. Außerdem hat Firefox selbst wie im Artikel erwähnt einen geringeren Speicherverbrauch dadurch, da Firefox ebenfalls in jedes Dokument ein Stylesheet lädt, nämlich mit den Standard-Formatierungen. Die Stylesheets von Webseiten profitieren hiervon nicht.

    Jetzt braucht es nur noch 1. eine vernünftige Sitzungsverwaltung (eine, die bei einem Flash-Update bei geschlossenem Firefox die gespeicherte Sitzung nicht überschreibt)

    Das ist mir in all den Jahren noch nie passiert, dass die Sitzung bei einem Flash-Update überschrieben worden ist.

    2. Sync+: Master/Slave-Sync und Sync für Masterpasswort-geschützte Passwörter

    Passwörter können bereits seit einigen Versionen auch mit aktiviertem Masterpasswort synchronisiert werden.

    Wenn ich den Wikipedia-Artikel zu Master/Slave durchlese, verstehe ich nicht den Vorteil, der sich daraus für Sync ergeben würde:
    https://de.wikipedia.org/wiki/Master/Slave

    3. Behebung von gecacheten Seiten bei Proxies: Wenn die Anmeldeseite des Proxies bei z.B. google kommt, dauert es ewig, bis sie aus dem Cache raus ist…

    Da ich keinen Proxyserver nutze, kann ich dazu nichts sagen. Mal in Mozillas Bugtracker umgesehen, ob es ein Ticket dazu gibt, oder selbst eines erstellt?

  12. Michael
    schrieb am :

    Die Stylesheets von Webseiten profitieren hiervon nicht.

    Doch, tun sie: Wenn Du auf irgendeiner News-Seite viele Artikel in neuen Tabs lädst, teilen sie sich den CSS-Cache ebenfalls. Tut mir sehr leid, aber der Patch ist einfach geil. 🙂

  13. Sören Hentzschel Verfasser des Artikels
    schrieb am :

    Selbst der Entwickler, der diesen Patch geschrieben hat, sagt, dass das nicht der Fall ist:

    http://www.ghacks.net/2015/06/30/firefox-41-ships-with-massive-memory-improvements-for-adblock-plus/#comment-3449116

    Einen Cache gibt es, ja. Aber das ist eine andere Baustelle. CSS-Dateien wurden schon immer gecacht. Aber auch gecachte Ressourcen benötigen RAM. 😉

  14. Michael
    schrieb am :

    Hmm, ok. Meine Behauptung fußte auf dem Blog-Artikel, der in den Aurora-Release-Notes verlinkt ist:
    https://blog.mozilla.org/nnethercote/2015/07/01/firefox-41-will-use-less-memory-when-running-adblock-plus/

    For example, for one of my measurements I tried opening the front page and four articles from each of nytimes.com, cnn.com and bbc.co.uk, for a total of 15 tabs. With Cameron’s patches applied Firefox with AdBlock Plus used about 90 MiB less physical memory, which is a reduction of over 10%.

  15. Sören Hentzschel Verfasser des Artikels
    schrieb am :

    Das dürfte sich in erster Linie auf die Stylesheets beziehen, die von Adblock Plus hinzugefügt werden. 😉

  16. Ronald
    schrieb am :

    Dass das Flash-Update bei geschlossenem Firefox die Sitzung (mit allen geöffneten Tabs) überschreibt, muss ich leider bestätigen. War bisher aber davon ausgegangen, dass Adobe der Übeltäter ist.

Und jetzt du! Deine Meinung?

Erforderliche Felder sind mit einem Asterisk (*) gekennzeichnet. Die E-Mail-Adresse wird nicht veröffentlicht.