28. Juni 2014 · 5 Kommentare · Kategorien: Open-Source · Tags:

Firefox für Android scrollt bei mir butterweich, wohingegen Firefox auf dem Desktop immer noch recht stark ruckelt. Eigentlich seltsam, ist mein Android-Smartphone wohl schon etwas betagter und ganz sicher nicht leistungsfähiger als mein Notebook. Sowohl unter Linux als auch unter Windows kann Firefox anderen Browsern wie Google Chrome oder Internet Explorer nicht das Wasser reichen. Ich benutze ihn trotzdem, aufgrund der Funktionalität, Mozillas Politik und weil ich ihn einfach mag. In Zukunft wird sich in dem Bereich jedoch hoffentlich einiges tun, schon heute kann man mit einem about:config-Schalter das Ruckeln beim Scrollen deutlich vermindern.

Anzeige

Der Grund, warum Firefox am Desktop so ruckelt, ist die Tatsache, dass der Inhalt einer Seite, welche nicht sichtbar ist, erst beim Scrollen in Echtzeit gerendert wird. Im Prinzip wird die gesamte Seite bei jedem zu scrollendem Pixel neu berechnet. Das war in Zeiten des harten Bildlaufs (im Gegensatz zum heutigen weichen Bildlauf) kein Problem, da der Brower viel weniger Abschnitte rendern musste. Bei einem weichen Bildlauf (smooth scroll) führt das jedoch unweigerlich dazu, dass trotz aktueller Hardware die Sache zur Diahshow (kennt ihr das noch) wird.

Andere Browser, wie zum Beispiel der Internet Explorer, machen das mittlerweile besser. Unter Windows scrollt Microsofts Browser mit Abstand am flüssigsten, es ist eine wahre Freude damit durch das Internet zu surfen. Nur leider ist der Browser für mich keine Alternative. Unter Windows – mangels Funktionalität  – und unter Linux, da stellt sich die Frage erst gar nicht. Außerdem möchte ich auf allen Betriebssysteme möglichst denselben Browser verwenden. Ich mag’s einfach konsistent.

Asynchrones Scrollen

Schon seit Jahren versuchen Firefox-Entwickler das Scrollen des Browser flüssiger zu gestalten. Es wird beispielsweise schon seit recht langer Zeit daran gearbeitet, den Scroll-Prozess vom Rendering-Prozess zu trennen. Insgesamt wird versucht den Haupt-Thread in mehrere Threads aufzuspalten.

Scrollen soll also beispielsweise von anderen Prozessen getrennt werden, damit sich verschiedene Prozesse nicht gegenseitig ausbremsen, bzw. der eine nicht auf den anderen warten muss. Unter Firefox für Android ist dieses „asynchrone Scrollen“ längst Standard, das merkt man unter anderem daran, dass man bei sehr schnellem Scrollen ab und zu auf Inhalte trifft, die noch nicht fertig gerendert wurden. Das ist halb so schlimm, denn meistens scrollt man eh nicht in einem Wisch nach ganz unten, sondern bewegt sich Stück für Stück fort. Auf aktuellen Smartphones dürften sich diese Probleme sowieso nicht mehr stellen.

Asynchrones Scrollen testen

Nun ist dieses asynchrone Scrollen unter Linux und Windows standardmäßig nicht aktiviert, da es scheinbar noch einige Bugs und Performance-Probleme damit gibt. Testen kann man das Ganze aber trotzdem, dazu müssen lediglich ein paar Schalter in about:config betätigt werden.

Falls ihr asynchrones Scrollen in eurem Firefox-Browser testen möchtet um damit das Scrollerlebnis zu verbessern, aktiviert einfach folgende Schlüssel:

  • layers.offmainthreadcomposition.enabled
  • layers.offmainthreadcomposition.async-animations
  • layers.offmainthreadcomposition.testing.enabled

Ich spüre eine Verbesserung des Scrollens, auch wenn es immer noch nicht komplett ruckelfrei klappt. Dies dürfte wohl erst mit Electrolysis möglich sein, welches dann auch moderne Mehrkernprozessoren auch endlich ausnutzen dürfte.

Bei mir bewirken diese Schalter zwar keine Wunder, führen aber tatsächlich auf beiden getesteten Geräten unter Windows und Linux zu spürbaren Verbesserungen. Wie sieht es bei euch aus? Bringt es etwas?

Anzeige


5 Kommentare

  1. Schonmal besser als vorher. Danke!

  2. Weicher als vorher! Danke

  3. Pingback: Flüssiger scrollen in Mozilla Firefox | Horst bloggt

  4. Gernold Mühling

    Danke für den wundervollen Tipp 😀

  5. Funtioniert, blockiert aber den Mauszugriff in Ausklapplisten (FF30.0/Win7).

  6. @Jörg

    Dann aktiviere lediglich:

    layers.offmainthreadcomposition.enabled

    Mindert das Ruckeln schon deutlich, der Mauszugriff auf Dropdown-Menüs funktioniert aber trotzdem.

    Als Alternative kann man auch mal einen Blick auf „Pale Moon“ werfen. Ein Firefox Sprössling, der von Haus aus weniger ruckelt.

Schreibe einen Kommentar

Deine E-Mail-Adresse wird nicht veröffentlicht.